2011-11-09 47 views
1

我正在使用(并学习)Buildr来构建和打包我的项目。我想在EJB项目MANIFEST文件中自动生成类路径属性。目前我在做:Buildr Manifest从EAR包生成类路径

manifest_cp = compile.dependencies.map { |d| 
    "#{File.basename(d.name)}" 
}.join(" ") 

package(:jar).with :manifest=>manifest.merge('Class-Path'=>manifest_cp) 

我是Ruby和Buildr的新手,所以可能有更好的方法来做到这一点。但是我实际上希望能够生成我定义并打包在我的EAR中的jar,而不是在我的JAR中获得编译依赖关系。

我包我的耳朵项目,如:

package(:ear).include(ANTLR, AOP_ALLIANCE, ... 

包装罐和修改舱单我创建打包在EAR的所有依赖性的类路径属性时,是否有可能在我的EJB项目构建?最重要的是,我还想排除一个或两个依赖关系?

感谢

UPDATE

我尝试了不同的方法,似乎更好(但仍可能有比我有什么更好的方法)。我创建了一个握着我的所有工件我想在我耳边包括,然后建立起来的类路径字符串常量:

EARLIBS = [ANTLR, AOP_ALLIANCE, ... ] 
manifest_cp = Buildr.artifacts(EARLIBS).each { |artifact| artifact.invoke }.map{ |d| 
     "#{File.basename(d.to_s)}" 
}.join(" ") 

当我打包EJB我应指定在上面创建的manifest_cp:

package(:jar).with :manifest=>manifest.merge('Class-Path'=>manifest_cp) 

当我打包我引用的所有文物中声明的常数EAR:

package(:ear).include(EARLIBS) 

即使这个工程是我想如果任何人有一个是我将不胜感激这样做

感谢tter方式,

回答

0

的为EarTask构建文档包含solution我相信:

所有指定的库添加到EAR归档和类路径manifiest项为每个EAR组件修改。