maven-shade-plugin:没有外部依赖的slim jar

时间:2015-04-28 12:14:22

标签: java maven

我们Project-Core提供了基本功能。 Project-X使用Project-Core。

Project-Core内部是一个多模块项目。为了避免部署所有子模块,我们使用maven-shade-plugin创建了一个胖罐(超级罐)。 Project-Core也有外部依赖项,如Spring。结果是一个胖胖的45MB罐子。

现在Project-X使用Project-Core,它包含fat-jar的dependency-reduced-pom,它运行正常。

但是,这种方法有点不灵活:如果Project-X想要排除或使用较新版本的依赖项,则无法实现。

或者,Project-Core部署只有核心实现的slim-jar,但不包括所有外部依赖项 - 这可以通过shade-plugin配置实现。但是,Project-X需要明确包含所有外部依赖项。这很麻烦,因为他们需要知道依赖关系和正确的版本。

更好的方法: slim-jar使用包含外部依赖关系的自定义POM进行部署。然后,Project-X可以包含此自定义POM,并且仍然可以获取所有依赖项,而无需明确包含它们。它还提供了排除/升级依赖项的灵活性。

问题:如何创建仅保留外部依赖关系的slim-jar自定义POM?

尝试使用createDependencyReducedPomkeepDependenciesWithProvidedScope选项(https://maven.apache.org/plugins/maven-shade-plugin/shade-mojo.html),但没有一个符合目的。

0 个答案:

没有答案