Я хотел бы упомянуть, что я относительно новичок в конфигурациях Maven.Maven: свойства профиля, используемые в разделе плагинов
Моя ситуация:
- Я использую Maven 3.0.5 построить J2E приложению
- приложение развертывается в четырех различных средах: в местном, Dev, испытания и прод
- Я использую Maven профили для настроить конфигурацию для конкретной среды
- Я определил эти конфигурации в файлах
properties
в файловой системе.
Это файловая система для тех, кто:
<my-project-root>
---profiles
------local
---------app.properties
------dev
---------app.properties
------test
---------app.properties
я загрузить соответствующий файл свойств со следующей логикой в моем pom.xml
:
<profiles>
<profile>
<id>local</id>
<!-- The development profile is active by default -->
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<build.profile.id>local</build.profile.id>
</properties>
</profile>
<profile>
<id>dev</id>
<properties>
<build.profile.id>dev</build.profile.id>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile.id>prod</build.profile.id>
</properties>
</profile>
<profile>
<id>test</id>
<properties>
<build.profile.id>test</build.profile.id>
</properties>
</profile>
</profiles>
<build>
<finalName>MyProject</finalName>
<plugins>
</plugins>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
<resource>
<directory>profiles/${build.profile.id}</directory>
</resource>
</resources>
</build>
С помощью этой конфигурации можно использовать соответствующие свойства для моего текущего профиля почти везде. Везде, но раздел <plugins>
. Я бы очень хотел загрузить, например, свой URL-адрес базы данных или учетные данные из таких файлов свойств, но если я их включу в app.properties
, они не будут оцениваться в разделе плагинов (например, я получаю значение ${endpoint}
в качестве конечной точки базы данных).
Как получить свойства, загруженные из файлов для профиля, доступные в разделе <plugins>
?
PS: Да, если я добавлю эти свойства непосредственно в pom.xml
в качестве свойств под тегом <profiles>
, они доступны, но я предпочитаю хранить свои пароли у pom.
Если вы вводите пароли в 'pom.xml' является единственным препятствием, свопите их с путями к файлам паролей (или просто имена файлов относительно некоторого известного местоположения, чтобы уменьшить утечку). –
@VictorSorokin правдоподобно. Тем не менее я ищу оптимальное решение. Если я поместил их в файлы, тогда мне нужна логика, чтобы их где-то их читать, не так ли? –
Если у меня есть правильная задача, «maven-resources-plugin» позволит вам поместить значения свойств для каждого профиля в файл шаблона, который обрабатывается позже: http://portofino.manydesigns.com/en/docs/portofino3/tutorials/using-maven-profiles-and-resource-filtering –