java - 使用 zipgroupfileset 从 Ant Build 中排除 Jar

标签 java servlets ant jar

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

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

我正在将 Apache Ant 与 NetBeans 8 结合使用:
我在 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.* 包。

最佳答案

excludes zipgroupfileset 的属性用于选择要从中选取条目的文件,而不是过滤文件的内容。 zipgroupfileset始终包含匹配文件中包含的所有内容。

如果您知道哪个存档包含 servlet 类,简单的解决方案是将其从 zipgroupfileset 中排除。并添加显式 zipfileset .

如果你不知道存档,可以模仿zipgroupfileset使用archives资源集合并将其包装到 restrict 中容器。类似的东西

<restrict>
  <archives>
    <zips>
      <fileset dir="dist/lib/"/>
    </zips>
  </archives>
  <not>
    <name name="javax/servlet/*"/>
  </not>
</restrict>

关于java - 使用 zipgroupfileset 从 Ant Build 中排除 Jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35577351/

相关文章:

java - 拖放ZK TreeModel问题

java - 自动登录网站 - Java

java - Servlet 容器中的请求参数顺序

javascript - jsp获取表行索引的方法

java - 用于忽略 JUnit 测试的 FindBugs 过滤器文件

java - 用 Ant 脚本替换正则表达式

java - 如何使用mysql中的存储过程从所有表中获取所有记录

Java android 以自定义分辨率捕获照片

Apache Tomcat URI 编码 - UTF-8

java - ANT 创建 jar 文件,导致 getResource + 编码出现问题