我有一个生成代码的项目。由于生成时间太长,所以我将其分成多个子项目,每个子项目只生成整体的20%。原始的POM成为“父POM”,子项目依赖于它,只包含一个独立的构件ID和一个或两个更改的属性。
我不想“构建父级”,因为这需要太长时间而且太耗费资源。我只想单独构建子项目。因此,在父级中没有“模块”的部分。
现在这个方法可以工作,但是有一个问题:Maven会将子POM放在存储库中,表示它们“依赖于父级”。但实际上,父级本身并不存在。父级从未被执行过,也没有产生任何构件。我甚至无法执行父级,因为它会由于“缺少文件”等原因而失败。构建部分中的插件配置实际上仅适用于子项;对于构建父项来说,没有什么需要做的,因为它实际上并不存在。
我能否删除子构件对(不存在的)父构件的依赖关系, 要么 在构建父级本身时将父POM的整个内容(build/plugins、build/resources和build/pluginManagement)标记为“被忽略”?(希望结果只有一个POM文件存在于本地存储库中)
我想要的是“不带依赖项的重复使用”,但这似乎不可能实现(我不明白为什么;子jar显然没有依赖于父jar,只有子POM依赖于父POM)。
我还看到过从“模板”生成POM的示例(消除依赖关系),但这对我也没有用,因为当“父模板”更改时,我必须重新生成每个子POM。
如果我理解为什么Maven中的POM依赖被硬编码为意味着构件依赖,也许会更合理一些?
用类比的方法来说,当我建造一个狗屋时,我“依赖于”木材和锤子等工具来完成。但是一旦狗屋建造好了,狗屋本身就不再依赖锤子。
我不想“构建父级”,因为这需要太长时间而且太耗费资源。我只想单独构建子项目。因此,在父级中没有“模块”的部分。
现在这个方法可以工作,但是有一个问题:Maven会将子POM放在存储库中,表示它们“依赖于父级”。但实际上,父级本身并不存在。父级从未被执行过,也没有产生任何构件。我甚至无法执行父级,因为它会由于“缺少文件”等原因而失败。构建部分中的插件配置实际上仅适用于子项;对于构建父项来说,没有什么需要做的,因为它实际上并不存在。
我能否删除子构件对(不存在的)父构件的依赖关系, 要么 在构建父级本身时将父POM的整个内容(build/plugins、build/resources和build/pluginManagement)标记为“被忽略”?(希望结果只有一个POM文件存在于本地存储库中)
我想要的是“不带依赖项的重复使用”,但这似乎不可能实现(我不明白为什么;子jar显然没有依赖于父jar,只有子POM依赖于父POM)。
我还看到过从“模板”生成POM的示例(消除依赖关系),但这对我也没有用,因为当“父模板”更改时,我必须重新生成每个子POM。
如果我理解为什么Maven中的POM依赖被硬编码为意味着构件依赖,也许会更合理一些?
用类比的方法来说,当我建造一个狗屋时,我“依赖于”木材和锤子等工具来完成。但是一旦狗屋建造好了,狗屋本身就不再依赖锤子。