【问题标题】:`gradle jar` doesn't seem to be adding dependencies to jar file`gradle jar` 似乎没有向 jar 文件添加依赖项
【发布时间】:2019-07-03 08:17:29
【问题描述】:

我想要制作一个可执行文件,它会自动创建一个包含相关任务的 Google 任务列表。

不过,现在我正在尝试使用 Google 提供的默认代码 here 简单地创建一个可执行文件。添加credentials.json 文件(如下所述)并在终端/cmd 中输入gradle run(在我提供的存储库中)后,它将按预期工作。

但是,如果你运行gradle jar创建一个jar,你会在尝试运行这个jar时得到这个错误:

java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory


如何重现

  1. 克隆this repo
  2. 点击this page 上的“启用谷歌任务API”,下载并替换位于./src/main/resources/ 中的credentials.json 文件。

    • 如果你想确认程序可以运行,请将你的终端/cmd设置为项目的根目录并输入gradle run
  3. 在项目的根目录中,输入grade jar。这将在./src/build/libs/ 文件夹中创建一个jar

  4. ./src/build/libs/ 文件夹内,运行java -jar demo-1.0.jar

此时你会得到上面提到的错误。

【问题讨论】:

    标签: java gradle google-api google-api-java-client google-tasks-api


    【解决方案1】:

    您似乎想要所谓的“超级”jar(也包含其依赖项的 jar)

    你可以这样做

    jar {
       from configurations.runtime.collect { zipTree(it) } 
    } 
    

    【讨论】:

    • 天哪,我全心全意地爱你。我一直在疯狂地试图弄清楚这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 2015-08-24
    • 1970-01-01
    • 1970-01-01
    • 2017-06-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多