У меня есть пакет (с некоторыми устаревшими файлами Java), который мне нужно создать с помощью ant tool. У меня есть несколько обновленных классов, для которых источник недоступен. Итак, мне нужно добавить обновленный класс в jar во время сборки и пропустить устаревшие файлы Java из сборки. Пожалуйста, дайте мне знать, как этого достичь.
Например, у меня нет обновленного исходного java файла для com.org.auth.ABC.Java, но у меня есть обновленный файл класса, который я получил из другого источника, то есть com.org.auth.ABC.class. Во время сборки я должен указывать на обновленный класс (com.org.auth.ABC.class) только для этого класса и создать новую банку.
Посмотрите, как я сейчас указываю на файлы классов ниже.
<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>
Если вы хотите оставить какой-либо пакет из компиляции, вы можете использовать исключающий атрибут тега antet файлов.
например:
<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 base folder"/>
</path>
<javac srcdir="${src.dir}"
destdir="${classes.dir}"
classpathref="project.class.path">
... put source files here..
</javac>
И если вы хотите включить этот класс файл в свою банку, то добавьте его в набор файлов, используя тег include:
<fileset dir="classfiles">
<include name="your class file name"/>
</fileset>
Надеюсь это поможет