我有一个像这样的项目结构
module-a/src/main/java
module-a/src/main/styles
module-distribution/src/main/assembly
module-distribution 依赖于 module-a,它们共享父 pom 并作为模块包含在该父 pom 中。
这个想法是有一个装配布局,如
my-final-assembly/lib
my-final-assembly/styles
其中 lib 目录包含所有项目工件,包括依赖项(即 module-a.jar 及其依赖项 jar),并且 module-a.jar 不应包含其样式目录。样式目录应该驻留在 my-final-assembly/styles 中。
我可以轻松填写 lib 目录,包括
<dependencySet>
<useProjectArtifact>false</useProjectArtifact>
<outputDirectory>lib</outputDirectory>
</dependencySet>
在我的汇编文件中。但是 module-a/src/main/styles 呢?我可以
- 将其包含在 module-a 工件中(它将驻留在 module-a.jar 中)
- 不要将它包含在 module-a.jar 中。
当然,1)和2)都对我无效。在第一种情况下,我必须以某种方式从我的 module-a.jar 中提取样式目录。在第二种情况下,根本不会复制样式目录,因为仅复制工件,而不是整个目标文件夹。
我最后的手段是为样式目录内容创建一个单独的模块,并让 module-a 依赖它,但这对我来说似乎有点矫枉过正。尽管在这种情况下调整我的程序集文件以获得我想要的东西很容易。但是对于单个模块需要的一堆字体和 xmls 的单独模块?那将是可悲的,尽管如果这就是你所说的 Maven 方式,我已经准备好了。