Как создать EAR-файл, используя ant build.xml для многомодульного приложения? - PullRequest
0 голосов
/ 14 ноября 2018

Мне нужно собрать мультимодульное приложение с помощью инструмента ant build, я не могу найти подходящие документы. У меня мало сомнений.

На самом деле наше приложение состоит из 7 модулей, из которых 1 является модулем EAR (в настоящее время мы строим с помощью Eclipse без использования какого-либо инструмента сборки).

Так что мои сомнения

  1. Могу ли я написать один файл build.xml, т.е. в модуле EAR (проект EAR) для проекта сборки, или мне нужно написать build.xml для каждого модуля?

  2. и наш проект также имеет циклические зависимости, поэтому возможно ли построить с использованием Ant без решения этих циклических зависимостей ....?

    Заранее спасибо

1 Ответ

0 голосов
/ 18 ноября 2018
  1. у вас должны быть отдельные build.xml s для всех ваших модулей. build.xml вашего ушного модуля должен вызывать все файлы build других модулей и, наконец, экспортировать ухо с задачей ear, которая может выглядеть так:

    <property name="build.dir" value="/path/to/your/build-directory/" />
    <property name="src.dir" value="/path/to/ear-module/" />
    
    <target name="generate-module-jars">
        <!-- this should build module and export module jar to ${build.dir} -->
        <ant antfile="module1/build.xml" target="jar" />
        <!-- this should build module and export module jar to ${build.dir} -->
        <ant antfile="module2/build.xml" target="jar" />
        <!-- this should build module and export module jar to ${build.dir} -->
        <ant antfile="module3/build.xml" target="jar" />
    </target>
    
    <target name="export-ear" depends="generate-module-jars">
        <ear destfile="${build.dir}/myapp.ear" appxml="${src.dir}/metadata/application.xml">
            <fileset dir="${build.dir}" includes="*.jar,*.war"/>
        </ear>
    </target>
    

  2. Вы должны реорганизовать свои модули, удалив циклические зависимости. Но все же вы можете использовать ivy. Или вы можете самостоятельно реализовать задачу ant, напрямую вызывая компилятор eclipse, который может обрабатывать циклические зависимости. (если вы используете затмение)

...