Получить имя файла maven pom

#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