#maven
#maven
Вопрос:
Я использую maven и хочу записать некоторые свойства maven в файл свойств с помощью фильтрации ресурсов.
Кажется, что это работает нормально, если я не попытаюсь перезаписать определенные свойства из командной строки.
Например, в примере ниже я установил для свойства application-type
значение MIXED в pom.xml но я хочу перезаписать его с помощью пакета из командной строки. Фильтрация по-прежнему записывает MIXED в мой файл свойств, даже если я предоставляю свойство следующим образом: -Dapplication-type=BATCH
Как я могу записать значения свойств, которые предоставляются через параметры командной строки, в файл свойств?
Структура проекта:
.
|-- pom.xml
`-- src
`-- main
`-- resources
`-- application.properties
pom.xml (нерелевантные части опущены):
<properties>
<!-- ApplicationType should be provided via maven parameter. Allowed values: MIXED, DIALOG, BATCH -->
<application-type>MIXED</application-type>
</properties>
<build>
<sourceDirectory>src/main/java</sourceDirectory>
<testSourceDirectory>src/test/java</testSourceDirectory>
<finalName>${project.artifactId}</finalName>
<!-- Apply filtering to write maven properties into properties file -->
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
<!-- ... -->
</build>
application.properties:
application-type=${application-type}
и я называю это так:
mvn clean process-resources -Dapplication-type=BATCH
Однако результирующий application.properties (в target/ classes/application.properties) содержит:
application-type=MIXED
вместо ожидаемого
application-type=BATCH
Комментарии:
1. Я рекомендую сначала удалить
<sourceDirectory>src/main/java</sourceDirectory>
,<testSourceDirectory>src/test/java</testSourceDirectory>
а также<finalName>${project.artifactId}</finalName>
… Кроме того, является ли это приложением Spring boot?2. Нет, это не приложение Spring boot.
3. Я удалю
<sourceDirectory>src/main/java</sourceDirectory>
,<testSourceDirectory>src/test/java</testSourceDirectory>
и<finalName>${project.artifactId}</finalName>
и посмотрю, все ли по-прежнему работает нормально. Я даже не уверен, почему это здесь.4. Является ли это приложением Spring boot?