buildr-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jason Hoogland <hoogl...@gmail.com>
Subject Re: stand-alone jar
Date Mon, 15 Apr 2013 13:44:40 GMT
Thanks Kevin,

The final solution I came up with uses OneJar.  There is a modest startup
delay of the order of 1s, but no significant runtime penalty.  Packaging
takes about 1.5s versus about 30s for flattening the jars out into
classes.  I'm not sure why that is, but its vastly better for the code dev
cycle.

MYJAR = '/path/to/myjar.jar'
ONEJAR = 'lib/one-jar-boot-0.97.jar'

DEPS =
[
  ARGS4J,
  JASYPT,
  WEB,
  ORIENTDB
].flatten

repositories.remote << 'http://repo1.maven.org/maven2'

define 'MyProject' do

  project.version = VERSION_NUMBER
  project.group = 'mygroup'
  compile.options.target = '1.7'

  define 'server' do
    compile.with DEPS, MYJAR
    package(:jar)
  end

  package(:jar).path("lib").tap do |p|
    p.include DEPS.each {|d| p.include artifact(d).to_s}
    p.include MYJAR
  end
  package(:jar).path("main").tap do |p|
    p.include project('server').package(:jar)
  end
  package(:jar).merge(ONEJAR)
  package(:jar).with :manifest=>manifest.merge(
    'One-Jar-Main-Class'=>'com.myproject.control.Start',
    'Main-Class'=>'com.simontuffs.onejar.Boot'
  )

end

Thanks everyone for your help.  Can I just make a comment about the Buildr
API documentation, which I'm guessing is a generic Ruby doc format?  I just
don't get it at all, I've relied totally on the Quick Start on the webpage,
and these few examples.  I have no Ruby background, but know Python (and
the C languages).  For example, if I want to know what methods are
associated with "package" I just can't figure that out.  Maybe its me.
hoogs


On Mon, Apr 15, 2013 at 9:19 PM, Kevin Smith <kevin.s@qualitycode.com>wrote:

> On 04/15/2013 06:49 AM, Jason Hoogland wrote:
>
>> Sorry, and any ideas on dealing with manifest.mf overwrite?
>>
>
> Here is a fragment from our buildr script:
>
>    p.with :manifest=>{'Main-Class'=>'**org.martus.client.swingui.**
> Martus'}
>      p.include(File.join(_('source'**, 'test', 'java'), '**/*.mlp'))
> p.merge(project('martus-jar-**verifier').package(:jar)).**
> exclude('META-INF/MANIFEST.MF'**)
>
> It merges in a jar build by a different sub-script, omitting that other
> manifest.
>
> Kevin
>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message