Java 将另一个依赖项(hibernate)的所有依赖项着色到jar中
我想自动将Hibernate core的所有依赖项隐藏到我的主jar中,而不显式地定义它们(因为这似乎成了一场追逐) 我不能把所有东西都隐藏在我的罐子里,因为不需要其他依赖项,这会使我的罐子变得不必要的巨大Java 将另一个依赖项(hibernate)的所有依赖项着色到jar中,java,hibernate,maven,maven-shade-plugin,Java,Hibernate,Maven,Maven Shade Plugin,我想自动将Hibernate core的所有依赖项隐藏到我的主jar中,而不显式地定义它们(因为这似乎成了一场追逐) 我不能把所有东西都隐藏在我的罐子里,因为不需要其他依赖项,这会使我的罐子变得不必要的巨大 有没有可能让maven自动为一个顶级依赖项的所有依赖项着色?着色插件支持选择性着色。这应该可以做到。您可以将不希望着色的依赖项的范围设置为“已提供”,这将向maven标记库已提供/假定在运行时可用 其余的依赖项,要么没有指定的范围,要么有“compile”范围,应该是那些jar需要着色的依赖
有没有可能让maven自动为一个顶级依赖项的所有依赖项着色?着色插件支持选择性着色。这应该可以做到。您可以将不希望着色的依赖项的范围设置为“已提供”,这将向maven标记库已提供/假定在运行时可用 其余的依赖项,要么没有指定的范围,要么有“compile”范围,应该是那些jar需要着色的依赖项 然后在您的pom中使用类似的内容:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
org.apache.maven.plugins
maven阴影插件
3.2.3
包裹
阴凉处
我目前使用的是包含,这使我无法使用我尝试过的通配符包含所有hibernates依赖项。我已经看到了这一点,不是一个解决方案。我很高兴我帮助了!