出于教育目的,我设置了一个像这样的项目布局(为了更好地适应 eclipse):
-product
|
|-parent
|-core
|-opt
|-all
Parent 包含一个带有 core、opt 和 all 的聚合项目。核心实现了应用程序的强制部分。Opt 是可选部分。All 应该将 core 与 opt 结合起来,并将这两个模块列为依赖项。
我现在正在尝试制作以下工件:
- 产品-core.jar
- 产品核心src.jar
- product-core-with-dependencies.jar
- 产品-opt.jar
- 产品-opt-src.jar
- product-opt-with-dependencies.jar
- 产品-all.jar
- 产品-all-src.jar
- product-all-with-dependencies.jar
它们中的大多数都相当容易生产。不过,我确实对聚合工件有一些问题。我已经设法在“all”模块中使用自定义程序集描述符制作了 product-all-src.jar,该模块下载了所有非传递 deps 的源代码,并且效果很好。这种技术还允许我制作 product-all-with-dependencies.jar。
然而,我最近发现你可以在源插件中使用 source:aggregate 目标来聚合整个聚合项目的源。对于 javadoc 插件也是如此,它也通过父项目的使用进行聚合。
所以我在我的“所有”模块方法和放弃“所有”模块之间,只使用“父”模块进行所有聚合。在 'parent' 中产生一些聚合工件,而在 'all' 中产生其他工件感觉不干净。有没有办法在父项目中制作“product-all”jar,或者在“all”项目中聚合 javadoc?还是我应该两个都保留?
谢谢