我正在尝试使用一些变量属性值并使用Maven配置文件来获取正确的输出。我已经为我的hibernate xml,log4j.properties做了这个,并没有问题。
所以它在项目#1中对我有用,我在/ src / main / resources下有一堆文件。我在maven中设置了属性和资源过滤,如下所示:
<properties>
<log.level>DEBUG</log.level>
</properties>
<profiles>
<profile>
<id>production</id>
<properties>
<log.level>INFO</log.level>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
以上工作没有问题。 但是,在我的项目#2中 - 我有一些具有可变属性的文件,但是它们位于/ src / main / webapp / WEB-INF下 - 我做的与上面相同,除了指向WEB-INF的目录它不起作用。我在项目#2上尝试将文件放在/ src / main / resources下并且工作正常。
在我看来资源过滤有问题,当文件在/ src / main / webapp / WEB-INF下但是我需要文件在那里,所以它在生成战争时进入WEB-INF文件夹。 / p>
有没有人有指针说明如何做到这一点?
以下是pom.xml中的以下snipet不起作用(资源过滤完全被忽略)
<properties>
<wsdl.url>http://stage/wsdl-url</wsdl.url>
</properties>
<profiles>
<profile>
<id>production</id>
<properties>
<wsdl.url>http://prod/wsdl-url</wsdl.url>
</properties>
</profile>
</profiles>
<build>
<resources>
<resource>
<directory>src/main/webapp/WEB-INF</directory>
<filtering>true</filtering>
</resource>
</resources>
</build>
答案 0 :(得分:5)
我也有这个问题;我怀疑战争插件忽略了POM的主<resources>
部分,因此我想出了直接配置插件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<configuration>
<filters>
<filter>filter.properties</filter>
</filters>
<webResources>
<resource>
<directory>WebContent/WEB-INF</directory>
<filtering>true</filtering>
<targetPath>WEB-INF</targetPath>
</resource>
</webResources>
</configuration>
</plugin>