Импортируйте внешнюю библиотеку в локальный репозиторий, используя maven-install-plugin в pom - PullRequest
1 голос
/ 17 марта 2020

Моя проблема в том, что я хочу, чтобы внешняя библиотека импортировалась в локальный maven-репозиторий пользователя автоматически.

Вот как я работаю, используя maven-install-plugin:

       <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-install-plugin</artifactId>
            <version>2.5.2</version>
            <executions>
                <execution>
                    <id>install-external</id>
                    <phase>clean</phase>
                    <configuration>
                        <file>${basedir}/myjar.jar>
                        <repositoryLayout>default</repositoryLayout>
                        <groupId>mygroupid</groupId>
                        <artifactId>myartefactid</artifactId>
                        <version>myversion</version>
                        <packaging>jar</packaging>
                        <generatePom>true</generatePom>
                    </configuration>
                    <goals>
                        <goal>install-file</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

Но с этим в pom, чтобы он работал, я должен выполнить две разные команды:

mvn clean 
mvn install

Если я просто запускаю

 mvn clean install

Это сбой не разрешать мою зависимость на этапе установки (кроме случаев, когда я выполнил чистку mvn в одиночку и, конечно, не очистил локальный репозиторий). Clean, кажется, вызывает закупорку, только если я запускаю 'mvn clean' в одиночку.

Мне бы хотелось, чтобы моя зависимость автоматически импортировалась при запуске mvn install. Или, по крайней мере, во время выполнения mvn clean install одной командой.

1 Ответ

0 голосов
/ 18 марта 2020

Ваше решение не может работать только с одной командой Maven.

Если вы запускаете Maven с mvn something, зависимости разрешаются сначала , поэтому все, что вы устанавливаете с помощью плагина во время сборки не будет найден.

Решение, как уже сказал Хмарбайз, состоит в том, чтобы сначала поместить артефакт в хранилище. Обычным решением для этого является ваша компания Nexus / Artifactory (если вы серьезно занимаетесь разработкой Maven, она должна быть).

Если это действительно невозможно, вы можете использовать каталог в качестве репозитория Maven, как описано здесь: { ссылка }

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