在多模块maven项目中指定公共资源

有没有办法在Maven的父项目模块之间共享资源? 例如,我想为多模块Maven项目中的所有模块指定一个log4j.properties文件。

通常,我使用Eclipse IDE通过选择一般项目来创建父项目,然后通过指定pom的包装将其转换为Maven项目。 这将创建一个没有src等文件夹的“干净”项目结构。 我想知道在这种情况下应该把这样的共享资源放在哪里。

EDIT1 :我想将公共资源放在父项目中。

我创建了一个额外的“基础”模块(项目),打包“jar”,其中包含src/main/resources中的公共src/main/resources 。 然后我会让其他模块依赖于该项目。 现在他们看到了类路径上的公共资源。

Antoher的可能性是使用远程资源包。 您可以在父项目中配置它。 在这个例子中,我想复制一些文件只是为了测试。 如果使用此方法,则需要在另一个项目中创建包。

   org.apache.maven.plugins maven-remote-resources-plugin 1.5   es.sca:myBundle:1.0.0  false true ${basedir}/src/test/resources     process     

是的,这似乎是一种可能的解决方案。 但我感兴趣是否有可能在父项目中指定这些资源(不引入额外的模块),因为父项目为子模块指定了所有常见的依赖项和Maven配置,我认为父项目是最合适的地方也是为了共同的资源。

在包装类型为pom的情况下,当指定目标来管理您的共享资源时,只需将下一个(检查文件夹)添加到pom文件的构建部分:

   org.apache.maven.plugins maven-resources-plugin   copy-config-files package  copy-resources   ${project.build.directory}/logconfig   false ${project.basedir}/src/main/resources       

我想你可以将资源和/或testResources元素添加到你的pom中。 例如,要访问其他测试资源目录,请添加:

    src/test/resources   ../global/src/test/resources   

请参阅Maven – 覆盖测试资源文件夹

我设法让它像这样工作:

我创建了一个project / assembly / test / resources / META-INF / persistence.xml文件,并将其添加到我的pom.xml中:

  org.apache.maven.plugins maven-resources-plugin   copy-test-persistence-xml-resources process-test-sources  copy-resources   src/   ${project.parent.basedir}/assembly/ true