Как исключить использование jar-сервера в mvn-развертывании?
Когда я запускаю "mvn deploy: deploy", maven разворачивает 4 файла jar в мой внутренний удаленный репозиторий.
Это:
[модуль-имя] -1.jar
[Модуль-имя] -1.pom
[Модуль-имя] -1-sources.jar
[module-name] -1-tests.jar
На самом деле существует больше файлов, таких как файлы md5 и sha1, которые развертываются. Но для простоты я просто пропущу эти файлы здесь.
Есть ли способ исключить [module-name] -1-sources.jar из процесса развертывания?
Один из способов, о котором я могу думать, - использовать "mvn deploy: deploy-file", который позволяет мне определить, какую банку развертывать. Но так как у меня есть несколько десятков модулей для развертывания, будет хорошо, если я могу настроить исключение файла развертывания в pom.xml. В противном случае мне придется написать script для развертывания.
Спасибо,
Ричард
Ответы
Ответ 1
Начиная с версии 2.2
maven-source-plugin
вы можете пропустить генерацию источника с опцией конфигурации без необходимости размещения плагина в профиле в родительском pom:
<!-- Do not generate a source jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.2.1</version>
<configuration>
<skipSource>true</skipSource>
</configuration>
</plugin>
Ответ 2
Есть ли способ исключить [module-name] -1-sources.jar из процесса развертывания?
Не создавайте источники, если вы не хотите их развертывать. Поэтому либо удалите следующее (что вы должны иметь в POM), либо поместите его в профиль, который вы не используете или не исключаете во время выпуска (интересно, когда вы используете источники в этом случае):
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
Ответ 3
Позвольте мне предположить, что вы не пропустите генерирующие источники для модуля.
В этом случае это будет простое решение, которое поможет вам справиться с этим сценарием:
В части выполнения "maven-source-plugin" в разделе плагинов
установите атрибут attach на false. Эта конфигурация будет генерировать source.jar для вашего модуля, но не привязана к списку артефакта проекта.
Пример фрагмента:
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>${source.plugin.version}</version>
<executions>
<execution>
<id>module1-sources</id>
<phase>verify</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
<configuration>
<!-- The below specified attribute 'attach' will disable the sources.jar not included in the artifact list -->
<attach>false</attach>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
Ответ 4
Если вы не хотите изменять POM, вы можете пропустить создание jar-источников, добавив переменную enviroment в командную строку:
-Dsource.skip
(для maven-source-plugin до версии 2.4, см. 2.4 документ)
или же
-Dmaven.source.skip
(для maven-source-plugin версии 3.0. 0+, см . Документ 3.0.1 или последний)
Ответ 5
Разверните сайт плагина maven:
http://maven.apache.org/plugins/maven-deploy-plugin/index.html
На основании того, что я там читаю, похоже, что вы можете исключать модули из развертывания, но не отдельные файлы - по крайней мере, пока.
Если вы посмотрите на страницу целей:
http://maven.apache.org/plugins/maven-deploy-plugin/plugin-info.html
он не показывает каких-либо конкретных конфигураций плагина для того, что вы ищете. Поскольку страница целей создается из класса плагина, если посмотреть на аннотации, я бы сказал, что они не имеют возможности.
Одна вещь, которую вы могли бы сделать, - сделать другую сборку, которая не создает банки, которые вы не хотите создавать, т.е. сделать другой сборный пакет или что-то подобное для этой сборки, и создать сборку, когда вы пытаясь развернуть конкретные пакеты.
Изменить: у koppernickus есть полное описание этого, я бы порекомендовал вам видеть его сообщение.
Ответ 6
Maven mvn deploy:deploy
развертывает все произведенные артефакты во время процесса maven (жизненный цикл по умолчанию). Чтобы не развернуть [module-name]-1-sources.jar
, вы должны просто (?) Не производить его. Если вы используете maven-source-plugin
для подключения исходных файлов, просто не используйте их больше.
Если это не так, вы испытываете, пожалуйста, предоставьте более подробную информацию:
- Как вы создаете артефакт
[module-name]-1-sources.jar
(какой плагин генерирует этот артефакт?)
- зачем вам нужно генерировать источники, но не нужно их разворачивать в репозиторий?