Maven 2 使用外部依赖项中的筛选器文件筛选maven资源
给定maven项目a中的属性文件 我想在项目B中使用它们进行资源筛选 所以在项目B中我使用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
<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:)