Awesome, thanks for this. If a dev would expain why this isn't a buildr default task like buildr run similar to Maven's exec:java (sic) I'd be interested in understanding this area of buildr better.
On Sep 21, 2010, at 12:43 PM, Alex Boisvert wrote: > I typically write something like, > > task "run" do > Java::Commands.java "org.example.Main", > :classpath => [ compile.dependencies, compile.target ] > end > > This has come up often enough in my buildfiles that I'm likely to > standardize it as a local task eventually. > > alex > > > On Tue, Sep 21, 2010 at 8:33 AM, Antoine Toulme > <[email protected]>wrote: > >> Yes, we still don't have better support for transitive dependencies. >> >> Instead of doing a system call, you could potentially use the >> Java::Commands::java method, with a :classpath option to set the classpath. >> >> Antoine >> >> On Tue, Sep 21, 2010 at 08:16, David Yang <[email protected]> wrote: >> >>> >>> I know this has been discussed here ( >>> >> http://groups.google.com/group/buildr-talk/browse_thread/thread/9f3694f43f23a701 >>> ) >>> >>> But wanted to open up the issue again: >>> >>> I've spent the last few years doing Ruby so I'm not super-familiar with >> how >>> Java handles bundling dependencies (most of what I have seen is Maven's >>> system/local repos, haven't seen how ivy handles anything). >>> >>> I have a project that has several deps both in Maven repos and from sub >>> projects - the way I run the Main class right now is: >>> >>> define 'router' do >>> compile.with transitive(CAMEL, CAMEL_FTP, project('other-project')) >>> package(:jar).with >>> :manifest=>manifest.merge('Main-Class'=>'com.company.route.Route') >>> >>> task :run => :compile do >>> puts resources.target >>> deps = compile.dependencies + [compile.target] + [resources.target] >>> cp = deps.join(":") >>> puts cp >>> system "java -cp #{cp} com.company.route.Route" >>> end >>> >>> >>> Is this the right way to think about it? >>> >>> Also, if I bundle resources with other projects in jar files, or in this >>> project, how do I add those to the classpath as well? >>> >>> Sorry for the newbie questions - the above feels gross to me and I'm just >>> wondering if there's something obvious I'm missing. >>> >>> Thanks, >>> David >>
