java - Ant 将类提取到 Jar 中

标签 java ant

<分区>

Possible Duplicate:
Clean way to combine multiple jars? Preferably using Ant

当我从 eclipse 中导出一个 jar 文件时,我得到的一个选项是将类文件从依赖 jar 中提取到我的最终 jar 中(其他选项包括将 jar 打包到我的最终 jar 中或将所有内容都留在我的最终 jar 中)我的最后一个 jar )。当然会有关于许可问题的警告。

那么问题来了——这在 apache ant 中的等价物是什么?如何从我的程序依赖的 jar 中提取 ant 类并将它们重新打包到我的最终 jar 中?

最佳答案

尝试这样的事情:

<?xml version="1.0"?>
<project name="blah" basedir="." default="jar">
<target name="init">
  <property name="build" value="./build" />
  <property name="srcdir" value="./src" />
  <property name="lib.dir" value="./lib" />
  <property name="dist" value="./dist" />
  <property name="docs" value="./docs" />
  <property name="debug" value="true" />
  <path id="project.class.path">
    <pathelement path="${java.class.path}" />
    <fileset dir="${lib.dir}">
      <include name="*.jar" />
    </fileset>
  </path>
</target>
 <target name="compile" depends="init">
   <mkdir dir="${build}" />
   <javac debug="${debug}"
          optimize="${optimize}"
          destdir="${build}"
          deprecation="${deprecation}"
          source="1.6" target="1.6">
     <src path="${srcdir}" />
     <classpath refid="project.class.path" />
   </javac>
 </target>
 <target name="jar" depends="compile">
   <mkdir dir="${dist}" />
   <jar destfile="${dist}/${ant.project.name}.jar">
     <fileset dir="${build}">
       <include name="com/blah/blah/*.class" />
     </fileset>
   </jar>
 </target>
<target name="package" depends="compile, jar">
  <jar destfile="${dist}/${ant.project.name}-release.jar" basedir="${build}" includes="**/*.*">
    <manifest>
       <attribute name="Main-Class" value="com.blah.blah.Main" />
    </manifest>
    <zipgroupfileset dir="${lib.dir}" includes="*.jar" />
    <zipgroupfileset dir="${dist}" includes="${ant.project.name}.jar" />
  </jar>
</target>
</project>

然后你会去:

Ant 包

生成包含 lib 文件夹中所有类的单个 jar 文件。

关于java - Ant 将类提取到 Jar 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027375/

相关文章:

java - 在 build.xml 中设置 ANT CLASSPATH

java - 如何使用最新的 JVM 构建 xerces-j 2.11?

java - 使用 HashMap 读取/写入 txt 文件 - 小修复

java - 我的代码是线程安全的吗?如果没有的话如何实现线程安全?

java - 二维数组的构造函数仅包含最后一个值

java - 关于 BigDecimal ROUND_DOWN 的问题

java - 检查 FTP 服务器上的可用空间

java - 根据单元格数据为表格单元格着色

ant - 在Gradle中,如何使用特殊字符引用导入的ant任务?

java - 在 ANT 构建期间未检测到 Java 文件中的断点