Жизненный цикл установки maven не выполняет проверку

Я должен установить пользовательский jar во время сборки, у меня нет выбора, чтобы запустить файл deploy для загрузки пользовательского jar в центральное соединение.

Пользовательский jar-файл не имеет никаких зависимостей и довольно прост. Вот мой pom-файл.

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
    <execution>
        <id>install-asjava</id>
        <phase>validate</phase>
        <goals>
            <goal>install-file</goal>
        </goals>
        <configuration>
            <groupId>com.ibm</groupId>
            <artifactId>customjar1</artifactId>
            <version>1.0.0</version>
            <packaging>jar</packaging>
            <file>${basedir}/lib/customjar1.jar</file>
            <generatePom>true</generatePom>
        </configuration>
    </execution>
    <execution>
        <id>install-unijdbc</id>
        <phase>validate</phase>
        <goals>
            <goal>install-file</goal>
        </goals>
        <configuration>
            <groupId>com.ibm</groupId>
            <artifactId>customjar2</artifactId>
            <version>1.0.0</version>
            <packaging>jar</packaging>
            <file>${basedir}/lib/customjar2.jar</file>
            <generatePom>true</generatePom>
        </configuration>
    </execution>
</executions>
</plugin>

Когда я бегу maven validateэти пользовательские jar-файлы нормально устанавливаются локально, но я хочу запустить install-plugin во время установки, я изменил фазу установки, и она завершается с ошибкой

[WARNING] The POM for com.ibm:customjar1:jar:1.0.0 is missing, no dependency information available
[WARNING] The POM for com.ibm:customjar2:jar:1.0.0 is missing, no dependency information available

Я должен всегда явно бежать validate перед запуском installЯ хочу обойти эту проблему. В документации Maven говорится, что все этапы до того, как конкретный элемент исполняется как часть цикла выполнения, но кое-что, как это не работает для меня.

Даже эта статья говорит то же самое, вам нужно запустить validate явно, чтобы убедиться, Maven install отлично работает

1 ответ

Это ошибка (или не зависящая от вашего взгляда), которая была закрыта как не будет исправлена: https://issues.apache.org/jira/browse/MNG-5082

Вот соответствующий комментарий от ошибки:

все зависимости, которые не являются частью реактора, должны быть доступны при запуске сборки, что необходимо для создания действительного buildPlan. Поэтому, хотя раньше это работало с Maven2, я думаю, что подход Maven3 лучше, так как Maven не может определить, какие плагины будут влиять на buildPlan при запуске. Я хотел бы закрыть это как не буду исправлять. Выполнение установочного файла во время проверки означает, что он будет выполняться во время каждой сборки, устанавливая один и тот же файл снова и снова. Это также признак того, что этот подход не может быть действительным.

Что вы можете попробовать, так это превратить ваш проект в многомодульный проект. Первый модуль просто включает в себя maven-install-plugin конфигурация - так что все, что делает этот модуль, это загрузить ваши два пользовательских jar-файла в локальный репозиторий. Ваш второй модуль будет зависеть от этого первого модуля. Ко времени сборки 2-го модуля 1-й модуль уже загрузит пользовательские файлы jar, что означает, что они должны быть доступны.

Другие вопросы по тегам