在ant构建期间排除jar依赖项目

时间:2014-10-30 20:21:17

标签: java eclipse ant jar war

正在开发一个使用ant作为构建工具的java项目。

假设我有两个项目X和Y,两者都是相互依赖的。我正在寻找一些可以在构建期间排除一些罐子的东西,即,当我构建项目A时,它应该在构建期间和创建战争时排除一些罐子。

我知道如果我们想要从类路径中包含和排除jar,我们会给出

    <include> and <exclude>
在build.xml文件中

。但是,当我们想要包含或排除项目之外的罐子时,我们该怎么做呢。

感谢任何帮助。

我提到了下面的一个,但无法理解。 Excluding jars from dynamically generated classpaths?

1 个答案:

答案 0 :(得分:0)

最后,我能够找到解决问题的方法。我发布了答案,认为它可能对将来的某些人有用。 我能够使用<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文件并使用一个非常好的新文件进行更新。