Я установил профили в a pom.xml
, как показанный следующим образом:
<profile>
<id><em>profileId1</em></id>
<build>
<filters>
<filter>src/main/filters/<em>profileId1</em>.properties</filter>
</filters>
// rest of the profile
</profile>
<profile>
<id><em>profileId2</em></id>
<build>
<filters>
<filter>src/main/filters/<em>profileId2</em>.properties</filter>
</filters>
// rest of the profile
</profile>
Вопрос:
Там какой-либо путь состоит в том, чтобы извлечь эту часть из всех профилей, так, чтобы не было никакой потребности повторить его для каждого профиля (и возможно написать его c орфографическими ошибками)?
Согласно PLXUTILS-37, доступ к свойствам в списке или карте должен быть возможен с помощью "Reflection Properties" (подробнее об этом см. в MavenPropertiesGuide).
Так что просто попробуйте ${project.profiles[0].id}
, ${project.profiles[1].id}
и т.п.
Если это не сработает (я не проверял), я бы использовал активацию профиля, основанную на свойстве системы, как описано в Введение, чтобы собрать профили и использовать это свойство в фильтре. Что-то вроде этого:
<profile>
<id>profile-profileId1</id>
<activation>
<property>
<name>profile</name>
<value>profileId1</value>
</property>
</activation>
<build>
<filters>
<filter>src/main/filters/${profile}.properties</filter>
</filters>
// rest of the profile
</profile>
Для активации этого профиля нужно было набрать в командной строке:
mvn groupId:artifactId:goal -Dprofile=profileId1