我有一个多项目构建,并且在每个项目中,我在主src树中都有几个软件包,这些软件包需要与其他src分开打包为单独的EJB Artifact :
com/foo/ejb/ejb1
com/foo/ejb/ejb2
...
每个项目中可以有任意数量的这些EJB(0或几个)。
我的问题是,在常规编译/ jar之后,如何创建一个可以在每个项目中将每个任务作为独立 Artifact 保存的任务?即因此,对于每个项目,我最终得到以下 Artifact :
project.jar (usual Java classes)
ejb1.jar (MyEjb1Home/Remote/Bean.class, META_INF/[descriptors])
ejb2.jar (MyEjb2Home/Remote/Bean.class, META_INF/[descriptors])
...
任务应该是我可以共享给每个项目的(可能是在根项目中定义的),并且可以自动找到EJB src并为每个项目生成一个jar,而不必在子项目中显式定义EJB(但是也许属性集“containsEjbs”以缩小具有EJB的子项目的范围。
我正在考虑使用文件树来抓取src包(com.foo.ejb。*),然后进行迭代和Jar-ing-但它如何在Tasks上下文中执行此Jar-ing,这是什么我有麻烦了。
克里斯,谢谢您的帮助。
最佳答案
您可以简单地定义一个新的任务类型: jar
task('ejb1', type: Jar) {
//describe jar contents here as a CopySpec
}
该任务应在“汇编”构建阶段中自动运行。可用功能的完整描述在http://www.gradle.org/0.9-rc-1/docs/userguide/userguide_single.html#artifact_management
关于groovy - 如何在Gradle构建项目中创建几个ejb jar?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3627791/