我需要使用ant build工具来构建多模块应用程序,但找不到合适的文档。我对此毫不怀疑。
实际上,我们的应用程序由7个模块组成,其中1个是EAR模块(当前,我们正在通过eclipse进行构建,而未使用任何构建工具)。
所以我的疑问是
我可以在EAR模块(EAR项目)中编写单个build.xml来构建项目,还是需要为每个模块编写build.xml?
,而且我们的项目还具有循环依赖关系,因此可以在不解决那些循环依赖关系的情况下使用Ant进行构建吗?...
预先感谢
答案 0 :(得分:1)
所有模块都应该有单独的build.xml
。您耳朵模块的build.xml
应该调用其他所有模块的build
文件,并最终通过看起来像ear
的任务导出耳朵;
<property name="build.dir" value="/path/to/your/build-directory/" />
<property name="src.dir" value="/path/to/ear-module/" />
<target name="generate-module-jars">
<!-- this should build module and export module jar to ${build.dir} -->
<ant antfile="module1/build.xml" target="jar" />
<!-- this should build module and export module jar to ${build.dir} -->
<ant antfile="module2/build.xml" target="jar" />
<!-- this should build module and export module jar to ${build.dir} -->
<ant antfile="module3/build.xml" target="jar" />
</target>
<target name="export-ear" depends="generate-module-jars">
<ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
<fileset dir="${build.dir}" includes="*.jar,*.war"/>
</ear>
</target>
您应该重新组织模块,以消除循环依赖性。但是您仍然可以使用ivy
。或者,您可以自行实现一个ant任务,直接调用可以处理循环依赖关系的eclipse编译器。 (如果您使用的是eclipse)