maven-release-плагин с активированными профилями свойств - PullRequest
0 голосов
/ 18 сентября 2018

У меня есть проект, в котором большинство профилей активируются автоматически на основе сочетания наличия файла и системного свойства.Например:

        <profile>
        <id>when-releasing-java-generate-sources</id>
        <activation>
            <file>
                <exists>${basedir}/src/main/java</exists>
            </file>
            <property>
                <name>build.release</name>
            </property>

Теперь мне нужно выпустить и развернуть артефакты этого проекта, и я буду использовать maven-release-plugin.

Моя проблема в том, что мои профили не активируются, даже если я передаю -Dbuild.release в командной строке.Также я пытался использовать -Darguments = -Dbuild.release, но не смог увидеть плагины, установленные в выполняемых профилях.

Итак, есть какой-либо способ активировать профили моего проекта с помощью maven-релиз-плагин?

1 Ответ

0 голосов
/ 19 сентября 2018

После многих часов копания в моей проблеме я нашел решение.

Первое, что я обнаружил, было то, что maven-release-plugin имеет раздражающее ограничение: он не работает, когда ваш проект имеет агрегатор POMэто не родитель.

Итак, первое, что мне пришлось решить, - вывести родительский POM на вершину иерархии проектов и включить его в агрегатор.

Как только это будет сделаноМне нужно было настроить релиз-плагин следующим образом:

    <plugin>
      <artifactId>maven-release-plugin</artifactId>
      <version>2.5.3</version>
      <configuration>
        <arguments>-Dc8tech.build.release -Dc8tech.build.test.coverage ${arguments}</arguments>
        <tagNameFormat>v@{project.version}</tagNameFormat>
        <autoVersionSubmodules>true</autoVersionSubmodules>
        <releaseProfiles>when-releasing-ensure-requirements</releaseProfiles>
      </configuration>
    </plugin>

Тогда я смог правильно выпустить свой проект.

...