#maven-2 #properties
#maven-2 #свойства
Вопрос:
Я запускаю сборку выпуска Maven (2) с помощью with: mvn -f release.xml clean deploy
и хочу получить имя текущего файла pom ( release.xml
) в качестве свойства или моджо.
Возможно ли это?
Ответ №1:
ну, вы можете использовать свойство
${env.MAVEN_CMD_LINE_ARGS}
в вашем pom или отфильтрованном ресурсе, который будет расширен до чего-то вроде
clean install -Paxis -Dmaven.test.skip -f mypom.xml -pl util
однако, если вы просто хотите mypom.xml частично, вам придется выполнить некоторые сценарии, которые не поддерживаются в maven «из коробки». Распространенными решениями являются либо плагин maven antrun, либо плагин gmaven (groovy). Вот способ сделать это в gmaven:
<plugin>
<groupId>org.codehaus.groovy.maven</groupId>
<artifactId>gmaven-plugin</artifactId>
<executions>
<execution>
<phase>process-classes</phase>
<goals>
<goal>execute</goal>
</goals>
<configuration>
<source>
System.out.println(
System
.getenv("MAVEN_CMD_LINE_ARGS")
.replaceFirst( /.*-fs (S ).*/ , 'POM File: $1')
);
</source>
</configuration>
</execution>
</executions>
</plugin>
Редактировать: если вы хотите, чтобы это было в свойстве, либо используйте System.setProperty, либо пишите напрямую в project.properties