Maven 2 使用外部依赖项中的筛选器文件筛选maven资源

Maven 2 使用外部依赖项中的筛选器文件筛选maven资源,maven-2,Maven 2,给定maven项目a中的属性文件 我想在项目B中使用它们进行资源筛选 所以在项目B中我使用 <build> <filters> <filter>${project.build.directory}/myFile.properties</filter> </filters> </build> ${project.build.directory}/myFile.pro

给定maven项目a中的属性文件

我想在项目B中使用它们进行资源筛选

所以在项目B中我使用

<build>
        <filters>
            <filter>${project.build.directory}/myFile.properties</filter>
        </filters>
 </build>

${project.build.directory}/myFile.properties
要根据myFile.properties中的值筛选资源,此文件存储在项目A中。因此,我将其包含在

    <build>
  <plugins>
    <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>unpack</id>
                    <phase>process-resources</phase>
                    <goals>
                        <goal>unpack</goal>
                    </goals>
                    <configuration>
                        <artifactItems>
                            <artifactItem>
                                <groupId>groupa</groupId>
                                <artifactId>a</artifactId>
                                <version>${project.version}</version>
                                <type>test-jar</type>
                                <outputDirectory>${project.build.directory}</outputDirectory>
                            </artifactItem>
                        </artifactItems>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

org.apache.maven.plugins
maven依赖插件
打开
过程资源
打开
groupa
A.
${project.version}
试验罐
${project.build.directory}
问题是,资源筛选发生在复制依赖项之前。因此,当手动将myFile.properties复制到${project.build.directory}时,筛选确实起作用,但它不适用于mvn清理


如何在实际过滤发生之前复制filterFile?

Maven插件按照它们在pom中出现的顺序执行。AFAIK在父级(和超级pom)中配置的插件在pom的插件之前执行

我的建议是在依赖插件之后明确声明资源插件:

<build>
  <plugins>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-dependency-plugin</artifactId>
      <!-- ... -->
    </plugin>
    <plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-resources-plugin</artifactId>
      <!-- ... -->
    </plugin>
  </plugins>
</build>

org.apache.maven.plugins
maven依赖插件
org.apache.maven.plugins
maven资源插件

您是对的,订单很重要。首先考虑阶段,并在同一阶段内考虑声明顺序。在mvn 3.0.3之前,相同问题中的订单。apache.org/jira/browse/MNG-2258是错误的。对不起,我反应太晚了。Glade我们现在有mvn 3或gradle:)