如何在ant中构建外部类文件

时间:2014-05-22 05:23:20

标签: java class ant jar

我有一个包(带有一些过时的Java文件),我需要使用ant工具构建它。我有一些更新的类,其中没有源。因此,我需要在构建期间将更新的类添加到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>

1 个答案:

答案 0 :(得分:2)

如果要从编译中保留一些包,可以使用fileset 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:

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

希望这有帮助