Java 如何针对本地依赖项运行Gradle JAR?

Java 如何针对本地依赖项运行Gradle JAR?,java,gradle,dependency-management,Java,Gradle,Dependency Management,当我运行gradlecleanjar时,它会在~/.gradle下提取所有可执行jar的依赖项,然后创建我的jar 然后,我不得不跳过重重障碍,在本地运行罐子: 首先,我在与新创建的JAR相同的文件夹中创建一个lib目录 然后我必须从~/.gradle中挑选出我的项目的所有可传递依赖项(有很多),并将它们复制到lib 然后我从命令行java-jarmyapp.jar-cp“lib/*” 每次我的依赖项发生变化(添加新代码等),我都要经历这个过程,这让我想知道是否有更优雅的方式在本地运行Gradl

当我运行
gradlecleanjar
时,它会在
~/.gradle
下提取所有可执行jar的依赖项,然后创建我的jar

然后,我不得不跳过重重障碍,在本地运行罐子:

  • 首先,我在与新创建的JAR相同的文件夹中创建一个
    lib
    目录
  • 然后我必须从
    ~/.gradle
    中挑选出我的项目的所有可传递依赖项(有很多),并将它们复制到
    lib
  • 然后我从命令行
    java-jarmyapp.jar-cp“lib/*”

  • 每次我的依赖项发生变化(添加新代码等),我都要经历这个过程,这让我想知道是否有更优雅的方式在本地运行Gradle构建的应用程序。

    我最终选择了
    应用程序
    插件。事实证明,Gradle认为
    编译
    依赖项是
    运行时
    的一个子集,所以我不需要更改任何依赖项范围。我现在可以发布gradle run了,它运行起来非常漂亮。

    你需要一个gradle
    fatjar
    shadow
    插件。感谢谷歌。谢谢@Opal(+1),但我讨厌霍奇把70多个罐子塞进一个巨大的胖罐子里。一定有办法做到这一点而不必走那条路…好的,明白了。您也可以尝试gradle发行版或应用程序插件。详细信息请阅读:或者再次感谢@Opal(+1)-使用应用程序插件,它还会包括
    编译
    依赖项还是只包含
    运行时
    ?我这样问是因为我目前将所有依赖项声明为
    compile
    ,我想知道在使用应用程序插件时需要做什么(如果有的话)才能将它们添加到类路径中。再次感谢!真的不确定。您需要尝试。如果您仔细考虑一下,这是有意义的-您需要所有编译时依赖项才能运行,但不一定需要运行时依赖项才能编译。