【问题标题】:Exclude jar flom classpath in Ant在 Ant 中排除 jar flom 类路径
【发布时间】:2015-10-26 16:40:10
【问题描述】:

如何从 Ant 中的另一个类路径变量中排除包含在一个类路径变量中的 jar?我有一个 myclasspath1 属性,其中包含我想要包含的所有 jar 和 myclasspath2 以及其他 jar 的列表。我想获得包含 classpath1 中不在 classpath2 中的所有 jar 的 classpath3。这是我想出的一个罐子:

<path id="my.classpath1">
   <pathelement path="${myClasspath1}"/>
</path>

<!-- at the end I want to get all jars concatenated into a string -->
<pathconvert pathsep="," property="my.classpath3" refid="my.classpath1">
   <mapper type="flatten"/>
   <map from="excluded.jar" to="" />
</pathconvert>

如何排除myclasspath2中包含的所有jar?

【问题讨论】:

标签: java ant build path classpath


【解决方案1】:

我建议你的类路径管理应该是明确的,因为你可以制作它们,例如:

<path id="my.classpath1">
  <fileset dir="${lib.dir}">
    <includes name="*.jar"/>
    <excludes name="foo.jar"/>
  </fileset>
</path>

<path id="my.classpath2">
  <fileset dir="${lib.dir}">
    <includes name="*.jar"/>
    <excludes name="bar.jar"/>
  </fileset>
</path>

<path id="my.classpath3">
  <fileset dir="${lib.dir}">
    <includes name="foo.jar"/>
    <includes name="bar.jar"/>
  </fileset>
</path>

类路径管理很痛苦......最好的解决方案是使用像 apache ivy 这样的依赖管理器。也有适用于 Maven 的 ANT 任务。两者都会自动从Maven Central 下载 jar,并且能够为您管理类路径。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-06
    • 1970-01-01
    相关资源
    最近更新 更多