Мы используем подключаемый модуль JDeb maven для сборки пакетов debian для наших проектов с одной банкой.
У нас есть два репозитория APT, один для предварительных сборок, а другой для выпусков.
Мы используем подключаемый модуль Wagon для загрузки артефактов, но не можем понять, как отправлять релизы только в репозиторий релизов, а снимки — в репозиторий предварительных релизов.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<executions>
<execution>
<id>upload-to-nexus</id>
<phase>deploy</phase>
<goals>
<goal>upload-single</goal>
</goals>
<configuration>
<serverId>xxx-all</serverId>
<fromFile>${project.build.directory}/${jdeb.name}</fromFile>
<url>https://xxx.xxx.xxx/repository/xxx-apt-pre</url>
</configuration>
</execution>
</executions>
</plugin>
Нам нужно изменить xxx-apt-pre выше на xxx-apt-dist, когда запустится плагин выпуска. Для жизни меня, я не могу найти способ сделать это.
Сначала я попытался использовать плагин build-helper для регулярного выражения ${project.build.finalName} для фразы SNAPSHOT, но он не перезапишет существующее свойство.
Любые идеи приветствуются.
Это должно быть автоматическим, чтобы наша система CI могла развертываться




Что ж, решение было некрасивым, но, как мы говорим на Среднем Западе, оно работает:
<plugin>
<groupId>org.codehaus.gmaven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<id>add-dynamic-properties</id>
<phase>package</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
<![CDATA[
if (project.version.contains('SNAPSHOT')) {
project.properties['aptRepoName'] = 'xxx-apt-pre'
} else {
project.properties['aptRepoName'] = 'xxx-apt-dist'
}
]]>
</source>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>wagon-maven-plugin</artifactId>
<executions>
<execution>
<id>upload-to-nexus</id>
<phase>deploy</phase>
<goals>
<goal>upload-single</goal>
</goals>
<configuration>
<serverId>xxx-all</serverId>
<fromFile>${project.build.directory}/${jdeb.name}</fromFile>
<url>https://xxx.xxx.xxx/repository/${aptRepoName}</url>
</configuration>
</execution>
</executions>
</plugin>
Я надеюсь, что это поможет кому-то или когда-нибудь кто-то опубликует лучший способ.
Используйте свойство системной среды или параметр командной строки во время сборки.