我的项目结构如下所示
-src/main/java
-src/main/resources
-dev
-app.properties
-prod
-app.properties
-sandbox
-app.properties我定义了一个maven配置文件,如下
<profiles>
<profile>
<id>dev</id>
<properties>
<build.profile>dev</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources/dev</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile>prod</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources/prod</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>sandbox</id>
<properties>
<build.profile>sandbox</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/resources/sandbox</directory>
</resource>
</resources>
</build>
</profile>
</profiles>当我触发正确的配置文件(如mvn -pdev安装)时,试图从正确的子文件夹复制正确的属性。将让maven将app.properties文件从src/main/resource/dev文件夹中复制,然后放入我正在构建的jar中。
我的罐子看起来是这样的:
+dev
+prod
+sandbox
+META-INF
+com
-app.properties问题是5文件夹只有一个属性文件,我不想要 prod沙箱文件夹。
发布于 2015-04-10 14:49:03
邓妮的回答会奏效的,但我就是这样做的
注意:您可以将所有的配置文件放在常见的位置,永远不要更改,将所有配置文件交叉到资源文件夹中等,然后将配置文件特定的配置文件分别放到每个子文件夹中。
最后的配置文件部分如下
<profiles>
<profile>
<id>dev</id>
<properties>
<build.profile>dev</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/profiles/dev</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>prod</id>
<properties>
<build.profile>prod</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/profiles/prod</directory>
</resource>
</resources>
</build>
</profile>
<profile>
<id>sandbox</id>
<properties>
<build.profile>sandbox</build.profile>
</properties>
<build>
<resources>
<resource>
<directory>src/main/profiles/sandbox</directory>
</resource>
</resources>
</build>
</profile>
</profiles>我之所以这样做,是因为Maven默认情况下试图将所有内容从/resource文件夹复制到jar中。
但使用jar插件,我可以得到我想要的,但我试图保持我的pom简单。
我在那里面临的主要问题是如何将文件排除在/resource文件夹中。如果有人知道更好的方法,请评论。
发布于 2015-04-10 14:13:41
也许您有一个插件,它不尊重build部分中的资源条目,并且使用src/main/resources作为资源文件夹。在这种情况下,我将更改文件夹结构如下:
src
- main
- resources-dev
- resources-prod
- resources-sandbox并更改生成部分中的文件夹名称。这样,您就不会干扰标准的maven文件夹结构。
https://stackoverflow.com/questions/29562261
复制相似问题