Maven EAR插件:添加生成的资源
在自定义Maven插件中,我使用Maven EAR插件:添加生成的资源,maven,ear,maven-resources-plugin,maven-ear-plugin,Maven,Ear,Maven Resources Plugin,Maven Ear Plugin,在自定义Maven插件中,我使用MavenProject的addResource添加一个文件作为资源 这对于JAR项目很有效,但是对于EAR,我看到相关文件被复制到target/classes,然后被忽略。它不在耳朵里 有一个earSourceDirectory属性,我可以通过将其设置为target/classes来“欺骗”Maven,但这似乎是错误的方法 如何处理应该打包到EAR中的生成资源?Maven EAR插件完全忽略了可以为给定工件设置的所有“资源”目录。相反,正如您所提到的,它只依赖于
MavenProject
的addResource
添加一个文件作为资源
这对于JAR项目很有效,但是对于EAR,我看到相关文件被复制到target/classes
,然后被忽略。它不在耳朵里
有一个earSourceDirectory属性,我可以通过将其设置为target/classes
来“欺骗”Maven,但这似乎是错误的方法
如何处理应该打包到EAR中的生成资源?Maven EAR插件完全忽略了可以为给定工件设置的所有“资源”目录。相反,正如您所提到的,它只依赖于
earSourceDirectory
属性引用的目录,src/main/application
是默认值。(见附件)
因此,您有两种选择:要么按照您的建议将该属性值更改为指向
target/classes
,要么生成文件(就像我们为一个项目所做的那样)在src/main/application
下,它们将被maven-ear插件自动拾取。您能解释一下需要添加哪些类型的生成资源吗?我想你没有把它们放在正确的位置?@khmarbaise在构建过程中,我们在自己的Maven插件中生成了一个属性文件(包含各种构建属性)。这个文件应该放在工件中(在顶层)。为此,我们使用addResource
。这对罐子有效,但对耳朵无效。因此,这是关于在Maven插件中生成的属性文件。在生成过程中在target
之外生成文件似乎不是一个好主意。@JFMeier我们实际上是在generate resources
阶段生成这些文件,这是直接用于此目的的(即在将资源放入实际工件之前生成资源)但是当您生成资源时,您不会将它们写入src/main/resources
,是吗?您会将它们写入target
目录(或其子目录)。我们确实会生成这些文件以src/main/resources
,并通过中的表达式忽略这些文件。gitignore
;事实上,我做了一些研究,这里讨论并回答了一个类似的案例:谢谢,但在构建过程中向src/main/resources
写信是一件危险的事情。调用m时它不会被清理干净vn clean
,开发人员可能会尝试手动更改它,它可能会意外地出现在SVN中,等等。这对我来说是没有选择的。