我正在修改一些maven3插件,我只需要使用已经在pom中定义的一些属性来过滤整个过程。
我没有找到很多关于这个主题的文档/示例,我的所有尝试都失败了。
第一个:
/**
* @component
* @required
* @readonly
*/
private MavenFileFilter mavenFileFilter;
然后在我的代码中:
mavenFileFilter.copyFile(tempFile, resultingFile, true, getProject(), Collections.<String> emptyList(), true, "utf-8", session);
然而没有任何反应:更换没有完成。
然后我看到围绕
发展的各种例子MavenResourcesExecution mavenResourcesExecution = new MavenResourcesExecution(resources, outputDirectory, getProject(), "utf-8", null, nonFilteredFileExtensions, session);
但是我没有得到如何放入我想要的文件...资源没有构造函数与实际内容...
欢迎任何帮助!
最佳
编辑(更多背景): 上下文如下:我们构建了一个部署在许多客户服务器上的Web应用程序。
一方面,文件夹层次结构取决于客户与客户。
另一方面,我们有一些默认的logback.xml配置文件,需要对其进行过滤(以使用给定客户服务器的正确文件夹层次结构)。该文件位于一些常见项目中。我们还希望能够在每个客户的基础上专门化这个logback.xml。我们已将这些文件放在相应的公共项目/客户项目的源文件夹中。
因此,执行打包的插件现在按顺序查看每个工件,并获取第一个logback.xml并将其放在需要的位置。它还需要进行过滤以放置正确的文件夹。
这一切都与最后一点分开......
有意义吗?有更好的方法吗?
再次感谢
答案 0 :(得分:2)
我建议你看看这个:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>validate</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/target/extra-resources</outputDirectory>
<resources>
<resource>
<directory>src/non-packaged-resources</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
...
</build>
...
</project>
为什么需要实现仅在其他生命周期阶段复制资源的插件。