我有一个 Maven 项目,它读取一个外部属性文件来过滤资源。这在使用 mvn 包时工作正常,但从 JUnit 测试开始,这只有在 pom 本身而不是属性文件中声明属性时才有效,所以我认为插件配置是问题所在。我在我的 pom 中得到了这个:
<plugin>
<groupId>org.eclipse.m2e</groupId>
<artifactId>lifecycle-mapping</artifactId>
<version>1.0.0</version>
<configuration>
<lifecycleMappingMetadata>
<pluginExecutions>
<pluginExecution>
<pluginExecutionFilter>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<versionRange>[1.0-alpha-2,)</versionRange>
<goals>
<goal>read-project-properties</goal>
</goals>
</pluginExecutionFilter>
<action>
<execute />
</action>
</pluginExecution>
</pluginExecutions>
</lifecycleMappingMetadata>
</configuration>
</plugin>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>properties-maven-plugin</artifactId>
<version>1.0-alpha-2</version>
<executions>
<execution>
<phase>initialize</phase>
<goals>
<goal>read-project-properties</goal>
</goals>
<configuration>
<files>
<file>${build.properties.file}</file>
</files>
</configuration>
</execution>
</executions>
</plugin>
生命周期在 Eclipse 中被标记为红色。
编辑:
m2e 部分需要被插件管理包围,然后错误就消失了。我可以看到目标现在正在 Maven 首选项下执行。
但如果我使用这个插件,它实际上仍然没有在从 eclipse 执行单元测试时过滤资源。所以这仍然是开放的;)