【问题标题】:Excluding jars of dependency project during ant build在ant构建期间排除依赖项目的jar
【发布时间】:2014-12-27 01:22:52
【问题描述】:
我正在开发一个使用 ant 作为构建工具的 java 项目。
假设我有两个项目 X 和 Y,它们是相互依赖的。我正在寻找可以在构建期间排除一些 jar 的东西,即,当我构建项目 A 时,它应该在构建期间和创建战争时排除一些 jar。
我知道,如果我们想在类路径中包含和排除 jar,我们会给出
<include> and <exclude>
在 build.xml 文件中。但是当我们想要包含或排除项目之外的jar时,我们该怎么做呢。
感谢任何帮助。
我参考了以下内容,但无法理解。
Excluding jars from dynamically generated classpaths?
【问题讨论】:
标签:
java
eclipse
ant
jar
war
【解决方案1】:
我终于找到了我的问题的解决方案。我发布答案认为它可能对将来的某人有用。
我能够使用<exclude>task 使其工作。下面是代码sn-p。
<target>
<delete dir="${dest.dir}" failonerror="false" />
<mkdir dir="${dest.dir}" />
<war destfile="${package.file}" webxml="${temp.dir.web-inf}/web.xml" basedir="${temp.dir}">
<fileset dir="${pages.dir}"/>
<lib dir="${lib.dir}">
<exclude name="servlet-api.jar"/>
<include name="de.vogella.build.test.ant.jar"/>
</lib>
<classes dir="${temp.dir.classes}" />
</war>
</target>
一开始它对我不起作用的原因是我没有包含任何<delete> 任务,该任务会在每次构建项目时删除war文件。所以旧的战争文件没有被替换,也没有向我显示任何变化。一旦我包含删除,它就会开始删除以前的构建战争文件并使用一个新的更新,它工作得非常好。