我们有git repository带有一组示例应用程序。每个示例应用程序都有自己的子目录和自己的pom.xml,但是没有公共的父pom。根级别具有一个aggregator pom,该应该列出所有示例应用程序。
+- sample-apps
| +- sample-app-A
| +- sample-app-B
| +- etc...
由于每个示例应用程序都依赖于我们的核心产品,并且我们希望示例应用程序使用我们的最新版本,因此我们从根级别运行maven-versions-plugin
以使所有应用程序保持最新。但是,添加新的示例应用程序(子文件夹)的开发人员会忘记将其添加到聚合器pom中。因此,随着时间的推移,这些示例应用程序将变得过时。
Maven是否有一种方法可以强制所有子目录在聚合器pom中列为模块?我们可以为maven-enforcer-plugin
写一个custom enforcer rule,但是想先检查更好的选择。
我们不希望示例应用程序在我们身边具有父pom,因为客户应该能够修改示例应用程序并从其自己的父级继承。