在使用 maven-remote-resources-plugin 时,我正在尝试覆盖默认资源目录(src / main / resources)。但是,下面的示例中的指定值似乎没有被考虑在内。如果有人能给我一些指示,我将不胜感激。
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>my.resource.library</groupId>
<artifactId>resource-library</artifactId>
<version>1.0</version>
<name>ResourceLibrary</name>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-remote-resources-plugin</artifactId>
<version>1.5</version>
<executions>
<execution>
<goals>
<goal>bundle</goal>
</goals>
</execution>
</executions>
<configuration>
<resourcesDirectory>${basedir}/common</resourcesDirectory>
<includes>
<include>**/*</include>
</includes>
</configuration>
</plugin>
</plugins>
</build>
</project>
编辑:我想知道这是否是插件中的错误,因为我在构建的DEBUG输出中看到以下内容,这意味着它试图使用正确的资源目录。调试输出中没有任何其他相关内容。
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-remote-resources-plugin:1.5:bundle' with basic configurator -->
[DEBUG] (f) includes = [**/*]
[DEBUG] (f) outputDirectory = C:\jit\workspace\ResourceLibrary\target\classes
[DEBUG] (f) resourcesDirectory = C:\jit\workspace\ResourceLibrary\common
编辑:我认为这实际上可能是一个错误所以提出了:MRRESOURCES-96
答案 0 :(得分:2)
为什么需要maven-remote-resources-plugin?
如果您的目标是StringBuilder sb = new StringBuilder(str);
if (sb.charAt(1) == 'x') {
sb.deleteCharAt(1);
}
if (sb.charAt(0) == 'x') {
sb.deleteCharAt(0);
}
return sb.toString();
,那么您可以使用mvn resources:copy-resources,因为它更灵活。示例here。
<强>替代强>
您还可以使用资源插件提供的override the default resources directory
目标,并在pom文件的块中指定资源。示例here。
修改
关于maven-remote-resources-plugin,请参阅usage页面:
这将触发扫描该项目的$ basedir / src / main / resources目录,并创建$ basedir / target / classes / META-INF / maven / remote-resources.xml清单文件。
这意味着此插件将创建resources
文件,但这并不意味着它会为您复制资源。
我使用您的插件配置创建了一个空的maven项目,它实际上创建了一个remote-resources.xml文件。此外,它没有复制$ {basedir} / common
下的文件为此,只需在构建部分中指定资源即可。例如:
remote-resources.xml
答案 1 :(得分:0)
使用“捆绑”目标,您只生成包含所包含资源列表的清单。清单必须与资源本身一起打包在工件中,只有在您还使用copy-resources将它们放入target / classes目录时才会在您的实例中发生。
然后,您必须使用“流程”目标,并在您希望使用资源的任何其他项目中列出您的捆绑包。