Мне нужно запустить альтернативные цели выпуска вместо значения по умолчанию deploy
как часть release:perform
.Наш родительский POM для всей компании определяет что-то вроде ниже в pluginManagement
:
<plugin>
<artifactId>maven-release-plugin</artifactId>
<version>2.4.1</version>
<configuration>
<releaseProfiles>release</releaseProfiles>
<goals>deploy</goals>
</configuration>
</plugin>
Я пытаюсь переопределить это с помощью опции -Dgoals
, но maven игнорирует это и запускает deploy
.Я попытался также установить -DuseReleaseProfile=false
, а также изменить -DreleaseProfiles
, и ни один из них, похоже, не оказывает никакого влияния.Я не могу изменить POM проекта, так как мне нужно сделать эту часть нашей инфраструктуры CI и для произвольных проектов.Я могу переопределить для тестового проекта, который не использует вышеупомянутый родительский POM, поэтому кажется, что проблема заключается в переопределении того, что происходит из родительского POM.Есть ли другие варианты, которые я могу использовать здесь?
Обновление:
Это точная командная строка: mvn -X -e -nsu release:perform -Dgoals=install -DlocalCheckout=true -Darguments="-DadditionalJOption=-Xdoclint:none -DskipTests"
Я бежал с mvnDebug
вместоmvn
и поставить точку останова в org.apache.maven.plugins.release.PerformReleaseMojo.createGoals()
.Когда была достигнута точка останова, я проверил значение goals
:
main[1] stop in org.apache.maven.plugins.release.PerformReleaseMojo.createGoals
Deferring breakpoint org.apache.maven.plugins.release.PerformReleaseMojo.createGoals.
It will be set after the class is loaded.
main[1] run
> Set deferred breakpoint org.apache.maven.plugins.release.PerformReleaseMojo.createGoals
Breakpoint hit: "thread=main", org.apache.maven.plugins.release.PerformReleaseMojo.createGoals(), line=220 bci=0
main[1] print this.goals
this.goals = "deploy"
main[1] print java.lang.System.getProperty("goals")
java.lang.System.getProperty("goals") = "install"
Ко времени вызова [createGoals][1]
должно быть уже введено goals
, но я не знаком с кодом maven длязнать откуда.