使用zipgroupfileset从Ant Build中排除Jar

时间:2016-02-23 12:15:23

标签: java servlets ant jar

我创建了一个包含Filter的Jar项目。 编译servlet-api.jar代码时,我需要使用Filter

但是当我想在另一个应用程序中使用Jar时,我想以这样的方式构建jar,它将排除servlet-api.jar

我在NetBeans 8中使用Apache Ant:
我在build.xml添加了以下代码。

<target name="-post-jar">
    <jar destfile="dist/MyJar.jar">
        <zipfileset src="dist/MyJarAsLibrary.jar"/>
        <zipgroupfileset dir="dist/lib/." excludes="javax/*"/>
    </jar>
</target>

我使用过Apache Ant zipgroupfileset。 但我搜索谷歌我发现文件的排除。 我尝试将servlet包排除为javax/*,但它不起作用。 不知道如何排除特定的包。 我发现很少有zipfileset排除,但我需要使用zipgroupfileset并排除javax.servelt.*个包。

1 个答案:

答案 0 :(得分:2)

excludes的{​​{1}}属性用于选择存档以从中选择条目,而不是过滤存档的内容。 zipgroupfileset始终包含匹配的归档中包含的所有内容。

如果您知道哪个存档包含servlet类,那么简单的解决方案就是将其从zipgroupfileset中排除,并添加一个明确的zipgroupfileset

如果您不知道存档,则可以使用zipfileset资源集合模仿zipgroupfileset并将其包装到archives容器中。像

这样的东西
restrict