Переопределить цель выпуска Maven, определенную в родительском POM из командной строки - PullRequest
0 голосов
/ 26 мая 2019

Мне нужно запустить альтернативные цели выпуска вместо значения по умолчанию 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 длязнать откуда.

...