Для того, чтобы должным образом install
и deploy
дополнительный артефакт (файл генерируется сборки, как правило, также после его версий и когерентно часть результатов соответствующего проекта), вам необходимо, чтобы приложил к сборке, чтобы Maven обработал его как официальный результат его результата.
Чтобы прикрепить файл к сборке, вы можете использовать build-helper-maven-plugin
.
Вот пример отрывок из его usage страницы:
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>build-helper-maven-plugin</artifactId>
<version>1.12</version>
<executions>
<execution>
<id>attach-artifacts</id>
<phase>package</phase>
<goals>
<goal>attach-artifact</goal>
</goals>
<configuration>
<artifacts>
<artifact>
<file>the-generated-file</file>
<type>extension of your file</type>
<classifier>optional</classifier>
</artifact>
</artifacts>
</configuration>
</execution>
</executions>
</plugin>
Вы должны установить конфигурацию выше после объявления плагина, который отвечает за генерацию файла, то есть, файл должен существовать, когда вы попробуйте прикрепить его к сборке. Посмотрите на конфигурационный элемент file
, здесь вы должны указать файл, например. target\myfile.zip
. В этом случае он будет прикреплен во время фазы package
, так что фаза install
и deploy
учитывала бы это во время их обработки.
При вызове
mvn clean install
Вы бы тогда увидеть, как часть результатов сборки:
[INFO] --- build-helper-maven-plugin:1.12:attach-artifact (attach-artifacts) @ zip-example ---
[INFO]
[INFO] --- maven-install-plugin:2.4:install (default-install) @ zip-example ---
[INFO] Installing C:\data\eclipse-workspace\zip-example\target\zip-example-0.0.1-SNAPSHOT.jar to c:\data\m2\repository\com\sample\zip-example\0.0.1-SNAPSHOT\zip-example-0.0.1-SNAPSHOT.jar
[INFO] Installing C:\data\eclipse-workspace\zip-example\pom.xml to c:\data\m2\repository\com\sample\zip-example\0.0.1-SNAPSHOT\zip-example-0.0.1-SNAPSHOT.pom
[INFO] Installing C:\data\eclipse-workspace\zip-example\sample.zip to c:\data\m2\repository\com\sample\zip-example\0.0.1-SNAPSHOT\zip-example-0.0.1-SNAPSHOT-optional.zip
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
, обратите внимание: sample.zip
был фактически скопирован в m2
локальное хранилище как zip-example-0.0.1-SNAPSHOT-optional.zip
, следовательно, переименован в соответствии с конфигурация проекта (artifactId
, version
, classifier
).
Файл '.zip' является частью содержимого папки' target', но скопирован ли он в локальный кеш 'm2'? Я полагаю, что нет, только '.jar' должен быть там, в соответствии с поведением' deploy'. Можете ли вы поделиться больше с соответствующим файлом 'pom.xml'? Скорее всего, файл 'zip' генерируется не прикрепленным к сборке как дополнительный артефакт –
@ A_Di-Matteo да, вы правы. Только '.jar' в локальном' m2 cache'. У меня только специальный плагин 'custom-plugin-packaging-zip' И этот плагин делает для меня' zip' файл в папке 'target'. Как я могу прикрепить это к созданию дополнительного артефакта? –