也许有人可以帮助我。我在网上搜索过,但还没有找到解决方案。
我有一个在Heroku上运行的java应用程序。我希望能够为不同的Heroku实例(dev,test,prod)加载不同的属性文件,但是我得到java.io.FileNotFoundException。这就是我在pom.xml中的内容。
<profiles>
<profile>
<id>dev</id>
<activation>
<property>
<name>env.APP_ENVIRONMENT</name>
<value>dev</value>
</property>
</activation>
<properties>
<profile.name>dev</profile.name>
</properties>
</profile>
<profile>
<id>test</id>
<activation>
<property>
<name>env.APP_ENVIRONMENT</name>
<value>test</value>
</property>
</activation>
<properties>
<profile.name>test</profile.name>
</properties>
</profile>
<profile>
<id>prod</id>
<activation>
<property>
<name>env.APP_ENVIRONMENT</name>
<value>prod</value>
</property>
</activation>
<properties>
<profile.name>prod</profile.name>
</properties>
</profile>
</profiles>
<build>
<plugins>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.7</source>
<target>1.7</target>
</configuration>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.2</version>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.github.jsimone</groupId>
<artifactId>webapp-runner</artifactId>
<version>7.0.34.0</version>
<destFileName>webapp-runner.jar</destFileName>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/profiles/${profile.name}</directory>
<includes>
<include>*.xml</include>
<include>*.properties</include>
</includes>
</resource>
</resources>
</build>
答案 0 :(得分:0)
如何自定义Maven构建:
您可以为每种构建类型创建一个设置文件:
settings.xml <-- Default
settings-dev.xml
settings-test.xml
settings-prod.xml
然后可以按如下方式执行生产构建:
heroku config:set MAVEN_SETTINGS_PATH=settings-prod.xml
git push heroku master
Java buildpack支持指定自定义Maven设置文件的方法。
默认情况下,它使用位于构建目录中的设置文件,可以通过设置以下变量之一来覆盖它: