Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/heroku/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Heroku配置的环境变量触发Maven概要文件_Maven_Heroku - Fatal编程技术网

从Heroku配置的环境变量触发Maven概要文件

从Heroku配置的环境变量触发Maven概要文件,maven,heroku,Maven,Heroku,我正试图在我的maven pom中激活一个配置文件,如下所示:- <profile> <id>test</id> </properties> <activation> <property> <name>env.SITE</name> <value>

我正试图在我的maven pom中激活一个配置文件,如下所示:-

    <profile>
        <id>test</id>
        </properties>
        <activation>
            <property>
                <name>env.SITE</name>
                <value>test</value>
            </property>
        </activation>
    </profile>

测试
环境现场
测试
现在,我将heroku配置为具有环境变量站点,如下所示:-

    <profile>
        <id>test</id>
        </properties>
        <activation>
            <property>
                <name>env.SITE</name>
                <value>test</value>
            </property>
        </activation>
    </profile>
heroku config:addsite=test


我希望环境变量在推送代码时触发概要文件。但是,这并没有发生。

配置变量当前在编译时不可用。要更改Maven概要文件,您需要分叉。

您可以在不使用自定义构建包的情况下完成此操作

在pom.xml中使用此代码段显示Heroku上可用的所有属性,并选择一个不在本地的属性:

我用了env.DYNO

    <profile>
        <id>heroku</id>
        <activation>
            <property>
                <name>env.DYNO</name>
            </property>
        </activation>
    ...
    </profile>
    ...

赫罗库
环境动力
...
...

工作起来很有魅力:)

或者您可以引入自己定制的Maven
settings.xml
文件,例如
heroku settings.xml


生产

然后通过在heroku项目设置选项卡中将
MAVEN\u设置路径
config变量设置为
heroku settings.xml
激活设置您可以使用环境变量
MAVEN\u CUSTOM\u OPTS
指定MAVEN配置文件

在pom中,定义maven概要文件激活基于属性的存在。如果指定了开发配置文件,下面的示例将使用该配置文件;如果未指定,则默认为生产配置文件


在本例中,生产配置文件不需要声明
MAVEN\u CUSTOM\u OPTS

我通过添加Heroku环境解决了问题,如下所示:

MAVEN_CUSTOM_OPTS=-P<profile_id>
MAVEN\u CUSTOM\u OPTS=-P
并从pom.xml中删除“activation”标记

顺便说一句,我不知道为什么这不起作用(在Heroku中,我有ENVIRONMENT=test)


测试
环境
测试
...

太棒了。这应该被认为是一个更好的答案+1.
MAVEN_CUSTOM_OPTS=-P<profile_id>
<profile>
  <id>test</id>
  <activation>
    <property>
      <name>env.ENVIRONMENT</name>
      <value>test</value>
    </property>
  </activation>
...
</profile>