【问题标题】:How to include external class files during build in ant如何在构建 ant 期间包含外​​部类文件
【发布时间】:2014-05-22 05:23:20
【问题描述】:

我有一个需要使用 ant 工具构建的包(包含一些过时的 Java 文件)。我有一些更新的类,它们的源不可用。因此,我需要在构建期间将更新的类添加到 jar 中,并从构建中跳过过时的 Java 文件。请告诉我如何实现这一目标。

例如 - 我没有 com.org.auth.ABC.Java 的更新源 java 文件,但我有从另一个源(即 com.org.auth.ABC.class)获得的更新的类文件。在构建期间,我需要单独为这个类指向更新的类(com.org.auth.ABC.class)并创建一个新的 jar。

请找出我当前如何指向下面的类文件。

<target name="xxx.jar" depends="xjc,compile">
    <jar destfile="${dist.dir}/xxx.jar">
        <fileset dir="${classes.dir}" includes="**/*.class"/>
        <fileset dir="${jaxb-classes.dir}" includes="**/*.class"/>
        <fileset dir="${jaxb-source.dir}" includes="**/bgm.ser,**/jaxb.properties"/>
    </jar>
</target>

【问题讨论】:

  • 请举例说明并发布您的 build.xml

标签: java class ant jar


【解决方案1】:

如果你想从编译中保留一些包,你可以使用文件集 ant 标签的 excludes 属性。

例如:

  <fileset dir="src/">
      <exclude name="**/dir_name_to_exclude/**" />
  </fileset>

为了在编译中包含指定的类,您可以使用 ant 将包含文件夹放在类路径中。

  <path id="project.class.path">  
    <pathelement location="lib/"/>  
    <pathelement path="${java.class.path}/"/>  
    <pathelement path="path to your class file's base folder"/>  
  </path> 

  <javac srcdir="${src.dir}"
     destdir="${classes.dir}"
     classpathref="project.class.path">
     ... put source files here..
  </javac>

如果你想在你的 jar 中包含那个类文件,那么使用 include 标签将它添加到文件集中:

  <fileset dir="classfiles">
     <include name="your class file name"/>
  </fileset>

希望对你有帮助

【讨论】:

  • 谢谢@Sanjeev 你能提供一些示例代码吗?
猜你喜欢
  • 1970-01-01
  • 2013-11-07
  • 2011-04-15
  • 1970-01-01
  • 2021-12-28
  • 2013-01-06
  • 2017-10-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多