我正在开发一个 java 项目,其中使用 ant 作为构建工具。
假设我有两个项目 X 和 Y,并且两者都是相互依赖的。我正在寻找一些可以在构建期间排除一些 jar 的东西,即当我构建项目 A 时,它应该在构建期间和创建 war 时排除一些 jar。
我知道如果我们想在类路径中包含和排除 jars,我们会给出
<include> and <exclude>
在 build.xml 文件中。但是,当我们想要包含或排除项目外部的 jar 时,我们该怎么做呢?
感谢任何帮助。
我引用了下面的内容,但无法得到任何想法。 Excluding jars from dynamically generated classpaths?
最佳答案
终于我找到了我的问题的解决方案。我发布了答案,认为它可能对将来的某人有用。
我能够使用 <exclude>
使其工作任务。下面是代码片段。
<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 文件的任务。所以旧的 war 文件没有被替换,它没有向我显示任何更改。一旦我包含了删除,它就开始删除以前的构建 war 文件并使用一个工作得非常好的新文件进行更新。
关于java - 在 ant 构建期间排除依赖项目的 jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26662542/