我找不到任何解释如何在pom.xml
内访问弹簧配置文件特定应用程序属性的内容。这可能吗?我找到了很多关于做相反事情的信息(在应用程序中访问Maven配置文件属性),但没有任何内容。
我的具体用例是能够从如下所示的属性文件中设置Tomcat插件中的Tomcat管理器URL。请记住,我的问题只是标题中的内容,而且我没有要求帮助配置Tomcat插件,因此我不会将其包含在问题标签中。
<plugin>
<groupId>org.apache.tomcat.maven</groupId>
<artifactId>tomcat7-maven-plugin</artifactId>
<version>2.2</version>
<configuration>
<url>${tomcat.manager.url}</url>
<server>${tomcat.server.name}</server>
</configuration>
</plugin>
我在POM中有这些个人资料:
<profiles>
<profile>
<id>dev</id>
<properties>
<activatedProperties>dev</activatedProperties>
</properties>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
</profile>
<profile>
<id>test</id>
<properties>
<activatedProperties>test</activatedProperties>
</properties>
</profile>
</profiles>
这是在同一个POM的构建元素中:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
在我的application.properties
:
# active profile placeholder for the active maven profile. Defaults to dev.
spring.profiles.active=@activatedProperties@
和我的application-test.properties
:
tomcat.manager.url=http://mydomain:8080/manager/text
tomcat.server.name=myserver
但是当我跑_
时mvn tomcat7:redeploy -DskipTests -P test
它不会尝试部署到http://mydomain:8080/manager/text
,而是使用默认值localhost:8080
。
答案 0 :(得分:1)
查看read-project-properties
的Properties Maven Plugin目标:
read-project-properties目标读取属性文件和URL,并将属性存储为项目属性。
所以,将以下内容添加到您的POM中:
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0.0</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${project.basedir}/src/main/resouces/application-test.properties</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
答案 1 :(得分:1)
将以下内容添加到您的pom
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.active>dev</spring.profiles.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<spring.profiles.active>prod</spring.profiles.active>
</properties>
</profile>
</profiles>
在application.properties配置中 spring.profiles.active =@spring.profiles.active @
运行如下: 生产:MVN清洁包装-Pprod 开发:mvn clean软件包-Pdev