我正在尝试从 ant 脚本构建一个 ear 文件。有几个目标使用不同的项目创建 .jar 和 .war(包含在 ear 中)文件,这些目标构建没有问题,所以我不会包括它们。
想象一下这个目录结构:-
Project1/
build/
lib/
META-INF/
build.xml
因此,当调用 ant 脚本时,构建目录会被删除并重新制作,所有这些都是相当标准的东西。然后我从外部项目创建 jar 和 war 并将它们存储在 build/ - 一切都很好。
但我也想在 ear 文件中包含目录 lib/ 和 META-INF/。所以我尝试使用这个目标将它们复制到构建目录。
<target name="file_cleanup">
<copy todir="${build}">
<fileset dir="lib/"/>
<fileset dir="META-INF/"/>
</copy>
</target>
此 file_cleanup 目标依赖于创建耳朵的默认构建目标 - 如下所示:
<target name="ear" depends="initialise, file_cleanup, other targets...">
<ear destfile="My.ear" appxml="META-INF/application.xml">
<fileset dir="${build}" includes="*.jar,*.war"/>
</ear>
</target>
拔耳时我想看到的是:
target1.jar
target2.war
lib/
META-INF/
但我实际得到的是:
target1.jar
target2.war
and all of the contents of both the lib and META-INF directories...