我正在尝试使用如下所示的maven命令激活AppEngine应用程序的配置文件:
mvn appengine:deploy -Dspring.profiles.active=prod
但是它被忽略了。
是否可以使用maven激活配置文件?
答案 0 :(得分:1)
我成功地将Maven配置文件链接到Spring配置文件。在下面的内容中,我解释了我的工作方式:
在 pom.xml 中,我确定了我的Maven配置文件,并将它们稍后链接到Spring配置文件,方法是将它们存储在“ spring.profiles.to.activate”属性中:
<!-- PROFILES -->
<profiles>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<spring.profiles.to.active>dev</spring.profiles.to.active>
</properties>
</profile>
<profile>
<id>uat</id>
<properties>
<spring.profiles.to.active>uat</spring.profiles.to.active>
</properties>
</profile>
<profile>
<id>prod</id>
<properties>
<spring.profiles.to.active>prod</spring.profiles.to.active>
</properties>
</profile>
</profiles>
我通过添加maven-war-plugin来激活文件夹$ {basedir} / src / main / webapp中的过滤。 这将使我们能够解析提到的文件夹中的占位符$ {...}(在这种情况下为$ {spring.profiles.to.activate})。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<webResources>
<resources>
<directory>${basedir}/src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resources>
</webResources>
</configuration>
</plugin>
在 appengine-web.xml 中,将系统属性“ spring.profiles.active”声明为maven属性$ {spring.profiles.to.activate}
<appengine-web-app
xmlns="http://appengine.google.com/ns/1.0">
<version>1</version>
<threadsafe>true</threadsafe>
<runtime>java8</runtime>
<system-properties>
<property name="spring.profiles.active" value="${spring.profiles.to.active}" />
</system-properties>
</appengine-web-app>
# Dev
mvn appengine:deploy -Pdev
# UAT
mvn appengine:deploy -Puat
#PROD
mvn appengine:deploy -Pprod
答案 1 :(得分:0)
#dev profile, try adding space between -P and dev
mvn appengine:deploy -P dev
#uat profile, try adding space between -P and uat
mvn appengine:deploy -P qa
#prod profile, try adding space between -P and prod
mvn appengine:deploy -P prd