Can you file an enhancement request for this and assign it to Alex for 1.4.3 ? It's a good addition imo.
On Tue, Sep 21, 2010 at 09:47, David Yang <[email protected]> wrote: > > 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 > >> > >
