Java 将另一个依赖项(hibernate)的所有依赖项着色到jar中

Java 将另一个依赖项(hibernate)的所有依赖项着色到jar中,java,hibernate,maven,maven-shade-plugin,Java,Hibernate,Maven,Maven Shade Plugin,我想自动将Hibernate core的所有依赖项隐藏到我的主jar中,而不显式地定义它们(因为这似乎成了一场追逐) 我不能把所有东西都隐藏在我的罐子里,因为不需要其他依赖项,这会使我的罐子变得不必要的巨大 有没有可能让maven自动为一个顶级依赖项的所有依赖项着色?着色插件支持选择性着色。这应该可以做到。您可以将不希望着色的依赖项的范围设置为“已提供”,这将向maven标记库已提供/假定在运行时可用 其余的依赖项,要么没有指定的范围,要么有“compile”范围,应该是那些jar需要着色的依赖

我想自动将Hibernate core的所有依赖项隐藏到我的主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依赖项。我已经看到了这一点,不是一个解决方案。我很高兴我帮助了!