Простая Mavenization существующих файлов сборки Ant - PullRequest
4 голосов
/ 05 марта 2010

Если у вас есть существующий файл ant, как лучше всего конвертировать проект в Maven.Я проверил такие вещи, как fAnt, но если я собираюсь возиться с этими вещами, я мог бы с таким же успехом отправиться в Maven.Я ожидал что-то существующее, что может просто запустить pom.xml для меня на основе существующего build.xml, но я еще ничего не нашел.Предложения?

Ответы [ 2 ]

1 голос
/ 05 марта 2010

Вы можете запустить скрипт Ant из Maven с помощью плагина maven-antrun-plugin. Ваш pom.xml будет выглядеть примерно так:

<project>
  ...
  <build>
     <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-antrun-plugin</artifactId>
            <dependencies>
                <dependency>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant-nodeps</artifactId>
                    <version>${ant-nodeps.version}</version>
                </dependency>
            </dependencies>
            <executions>
                <execution>
                    <id>init</id>
                    <phase>compile</phase>
                    <configuration>
                        <tasks>
                            <!-- Ant code goes here -->
                        </tasks>
                    </configuration>
                    <goals>
                        <goal>run</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </build>
</project>

Таким образом, вы можете начать перемещать свои зависимости в Maven и ссылаться на них в скрипте Ant, например, так:

${com.foo.bar:my-lib:jar}

Тогда просто начните медленно перемещать кусочки своего муравья в чистый материал мавена.

1 голос
/ 05 марта 2010

Я не знаю какого-либо хорошего автоматизированного способа сделать такую ​​миграцию, потому что вещи могут быть слишком разными, поэтому я бы делал это вручную, шаг за шагом, и оставлял существующую сборку муравья параллельно будущей новой дозавершена вся миграция (как с технической, так и с человеческой точек зрения).

Сначала выполните рефакторинг существующей сборки Ant, чтобы привести ее в соответствие с соглашениями Maven:

  • Сделать все модульным: если ваша существующая сборка представляет собой большую монолитную сборку, производящую несколько артефактов из одного дерева исходных текстов, разбейте их на отдельные модули, по одному для каждого артефакта.
  • Обновите структуру каталогов: Maven поставляется со стандартной директорией , и, хотя есть возможность настроить эту компоновку (то есть настроить плагины для другой компоновки), это на самом деле не рекомендуется и является скорее источником проблем, чем преимуществ.Поэтому я бы переместил существующие источники приложений, файлы конфигурации, тесты и т. Д. В соответствии с макетом Maven (например, src/main/java для источников приложений и т. Д.).

Затем приступим к созданию сборки Maven:

  • Создание POM для каждого модуля: Создание POM, объявление внешних библиотек как зависимостей Maven (возможно, добавление их в корпоративный репозиторий, использование корпоративного репозитория - хорошая практика на предприятиив любом случае), добавьте зависимости между модулями.
  • Завершите сборку с несколькими модулями: Добавьте родительские (ые) POM (s) и отношения наследования / агрегации.Проверьте, нет ли регрессии с созданными артефактами.

Вы можете выполнить эту работу в отдельной ветке VCS, если вы не хотите ничего менять, пока работа не будет выполнена, и создать сценарии для перемещения объектов.,И когда все будет готово, объедините материал Maven и примените сценарии.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...