如何使用Gradle创建具有实现依赖关系的可执行FAT JAR?

我在Gradle4.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。

相关文章