0

我有两个配置属性文件和两个application Context xml files,一个用于测试,另一个用于开发,我必须为每种情况指定要使用的过滤器。

我试图这样做,但它不起作用,它从 中选择最后一个过滤器pom.xml,所以当我检查文件applicationContext.xml夹中的文件时target/classes/target/test-classes我发现这两个文件具有从上一个声明的过滤器中获取的相同值pom.xml

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.6</version>

        </plugin>
    </plugins>

    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>

    <testResources>
        <testResource>
            <filtering>true</filtering>
            <directory>src/test/resources</directory>
        </testResource>
    </testResources>


    <filters>
        <filter>src/test/filters/filter.properties</filter>
        <filter>src/main/filters/filter.properties</filter>
    </filters>

所以我想知道是否有一种解决方案可以为每种情况指定要使用的适当过滤器?

4

1 回答 1

1

您可能会使用配置文件

不幸filters的是不允许 inside profile,因此您可以使用以下解决方法:

外部简介写道:

<filters>
    <filter>src/${switch}/filters/filter.properties</filter>
</filters>

在主要配置文件中写道:

<properties>
  <switch>main</switch>
</properties>
<resources>
    <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
    </resource>
</resources>

在测试配置文件中写:

<properties>
  <switch>test</switch>
</properties>
<testResources>
    <testResource>
        <filtering>true</filtering>
        <directory>src/test/resources</directory>
    </testResource>
</testResources>

最后运行:

mvn install -Pmain

或者:

mvn install -Ptest
于 2014-05-06T20:32:25.767 回答