Maven 2 向maven pom添加额外资源
我定义了一个超级pom,其中我为资源指定了一个“resources”目录。在我的一个项目中,我的pom扩展了超级pom,我想添加一个额外的资源。我试过:Maven 2 向maven pom添加额外资源,maven-2,resources,pom.xml,Maven 2,Resources,Pom.xml,我定义了一个超级pom,其中我为资源指定了一个“resources”目录。在我的一个项目中,我的pom扩展了超级pom,我想添加一个额外的资源。我试过: <resources> <resource> <targetPath>/</targetPath> <directory>additionalDir</directory>
<resources>
<resource>
<targetPath>/</targetPath>
<directory>additionalDir</directory>
</resource>
</resources>
/
附加目录
但这只会导致资源中存在额外的DIR,而不包括超级pom的资源。有没有办法扩展super pom的资源?您所描述的行为是预期的 请记住,您的超级POM是从Maven继承的,您在POM中定义的几乎所有插件都会有效地覆盖默认POM中的设置。例如,要在默认资源上启用筛选,必须在POM中指定路径。您可以这样做:
<resources>
<resource>
<directory>src/main/resources</directory>
<filtering>true</filtering>
</resource>
</resources>
src/main/resources
真的
不是这个:
<resources>
<resource>
<filtering>true</filtering>
</resource>
</resources>
真的
默认目录不会为您弹出,即使您已经在那里指定了它。可能有一种特殊的方法可以帮你,但我找不到。请参阅构建助手maven插件页面。是的,maven在重新定义新资源部分时会覆盖父POM的资源 但是,添加资源的一个简单方法是
我知道这个问题现在已经很老了,但也许有人会发现这个问题很有用: 您可以使用maven资源插件轻松地做到这一点 基本上,默认情况下它所做的(调用resources:resources目标)是使用声明的过滤器将build/resources部分中列出的所有目录的内容移动到
${project.build.outputDirectory}
如果您现在想添加一些额外的资源而不影响这些部分,您可以自己将这些资源移动到那里。不,这并不意味着把它拖到那里
Maven Resources插件
提供了一个名为Resources:copy Resources
的目标,该目标正好为您提供了这一功能:使用过滤器将文件从一个地方过滤到另一个地方,或者如插件文档所述:
您可以使用mojocopy资源来复制不在默认maven布局中或未在build/resources元素中声明的资源,并将其附加到一个阶段
与其他解决方案中建议的构建助手相比,构建助手的明显优势在于,虽然构建助手只能在生成源代码
阶段执行操作,但资源插件可以在任何阶段工作。(尽管最好在包装阶段之前执行)
作为插件项目页面的一部分,提供了一个关于如何使用它的完整示例
这样做的目的是处理未列出的资源目录“src/non-packaged resources
”的内容
进入“
${basedir}/target/extra resources
”。但是,由于jar插件(创建jar存档)基本上创建了目录“${project.build.outputDirectory}
”的zip存档,您可能想把它放在那里。这确实有效,必须指定${project.outputDirectory}
和true
这两个甚至没有文档(但有效)的目录,这有点麻烦.我想知道,这是如何解决op的问题的?请你说清楚一点好吗?应该在哪里做任何更改