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
然后,我不得不跳过重重障碍,在本地运行罐子:
lib
目录~/.gradle
中挑选出我的项目的所有可传递依赖项(有很多),并将它们复制到lib
java-jarmyapp.jar-cp“lib/*”
每次我的依赖项发生变化(添加新代码等),我都要经历这个过程,这让我想知道是否有更优雅的方式在本地运行Gradle构建的应用程序。我最终选择了
应用程序
插件。事实证明,Gradle认为编译
依赖项是运行时
的一个子集,所以我不需要更改任何依赖项范围。我现在可以发布gradle run了,它运行起来非常漂亮。你需要一个gradlefatjar
或shadow
插件。感谢谷歌。谢谢@Opal(+1),但我讨厌霍奇把70多个罐子塞进一个巨大的胖罐子里。一定有办法做到这一点而不必走那条路…好的,明白了。您也可以尝试gradle发行版或应用程序插件。详细信息请阅读:或者再次感谢@Opal(+1)-使用应用程序插件,它还会包括编译
依赖项还是只包含运行时
?我这样问是因为我目前将所有依赖项声明为compile
,我想知道在使用应用程序插件时需要做什么(如果有的话)才能将它们添加到类路径中。再次感谢!真的不确定。您需要尝试。如果您仔细考虑一下,这是有意义的-您需要所有编译时依赖项才能运行,但不一定需要运行时依赖项才能编译。