Как включить файлы внешних классов при сборке в ant

1

У меня есть пакет (с некоторыми устаревшими файлами 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>
  • 0
    Уточните, пожалуйста, с некоторыми примерами и опубликуйте свой build.xml
  • 0
    Обновил вопрос
Теги:
class
jar
ant

1 ответ

2
Лучший ответ

Если вы хотите оставить какой-либо пакет из компиляции, вы можете использовать исключающий атрибут тега 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>

Надеюсь это поможет

  • 0
    Спасибо @Sanjeev не могли бы вы предоставить пример кода?
  • 0
    см. отредактированный ответ с примером

Ещё вопросы

Сообщество Overcoder
Наверх
Меню