在appengine:deploy中激活配置文件

时间:2018-11-25 09:52:09

标签: java maven google-app-engine

我正在尝试使用如下所示的maven命令激活AppEngine应用程序的配置文件:

mvn appengine:deploy -Dspring.profiles.active=prod

但是它被忽略了。

是否可以使用maven激活配置文件?

2 个答案:

答案 0 :(得分:1)

我成功地将Maven配置文件链接到Spring配置文件。在下面的内容中,我解释了我的工作方式:

1-创建Maven配置文件:

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> 

2-激活Maven过滤:

我通过添加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>

3-激活配置文件Spring

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> 

4-部署到Appengine

# 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