java - 如何使用带有实现依赖项的 Gradle 创建可执行的胖 JAR?

标签 java gradle executable-jar gradle-plugin fatjar

我在 Gradle 4.6 中有一个简单的项目,并且想制作一个可执行的 JAR。我试过 shadowgradle-fatjar-plugingradle-one-jarspring-boot-gradle-plugin 插件,但它们都没有添加我声明为 implementation 的依赖项(我没有任何 compile )。它适用于 compile 例如对于 gradle-one-jar 插件,但我想拥有 implementation 依赖项。

最佳答案

您可以使用以下代码。

jar {
    manifest {
        attributes(
                'Main-Class': 'com.package.YourClass'
        )
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
 }

确保将 com.package.YourClass 替换为包含 static void main( String args[] ) 的完全限定类名。

这将打包运行时依赖项。查看docs如果您需要更多信息。

关于java - 如何使用带有实现依赖项的 Gradle 创建可执行的胖 JAR?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49278063/

相关文章:

java - 在字节数组中保存字节数组的长度

java - 无法阻止用户使用带有自定义 UserDetail 和 AuthenticationProvider 的 spring security 多次登录

Gradle `tasks.withType()` 之后添加的任务的奇怪行为

java - Gradle 依赖排除不适用于传递依赖

java - jar 没有生成正确的 list 文件

java - 带有 bouncycaSTLe 库的 jar 文件 : NoClassDefFoundError

java - 从 fatjar 运行 jetty

java - Janusgraph libs无法在kerberos环境中与hbase通信(无法指定服务器的Kerberos主体名称)

java - Java 中是否有使用泛型的多对多集合(域模型,而不是持久层)?

java - Gradle mavenDeployer - 如何包含单独的模块代码