`gradle jar` 似乎没有向 jar 文件添加依赖项
`gradle jar` doesn't seem to be adding dependencies to jar file
我想制作一个可执行文件,它将自动创建一个 Google 任务列表和相关任务。
然而,现在,我正在尝试使用 Google 提供的 here 的默认代码简单地创建一个可执行文件。添加 credentials.json
文件(如下所述)并在 terminal/cmd 中输入 gradle run
(在我提供的存储库中)后,它将按预期工作。
但是,如果您 运行 gradle jar
创建一个 jar,当您尝试 运行 jar 时,您将得到这个错误:
java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory
如何重现
- 克隆this repo
通过单击 this page 上的 "ENABLE THE GOOGLE TASKS API" 下载并替换位于 ./src/main/resources/
中的 credentials.json
文件。
- 如果您想确认该程序是否有效,请将您的 terminal/cmd 设置为项目的根目录并输入
gradle run
在项目的根目录中,输入 grade jar
。这将在 ./src/build/libs/
文件夹
中创建一个 jar
- 在
./src/build/libs/
文件夹内,运行 java -jar demo-1.0.jar
此时会出现上述错误
您似乎想要所谓的 "uber" jar(也包含其依赖项的 jar)
您可以通过
jar {
from configurations.runtime.collect { zipTree(it) }
}
我想制作一个可执行文件,它将自动创建一个 Google 任务列表和相关任务。
然而,现在,我正在尝试使用 Google 提供的 here 的默认代码简单地创建一个可执行文件。添加 credentials.json
文件(如下所述)并在 terminal/cmd 中输入 gradle run
(在我提供的存储库中)后,它将按预期工作。
但是,如果您 运行 gradle jar
创建一个 jar,当您尝试 运行 jar 时,您将得到这个错误:
java.lang.NoClassDefFoundError: com/google/api/client/json/JsonFactory
如何重现
- 克隆this repo
通过单击 this page 上的 "ENABLE THE GOOGLE TASKS API" 下载并替换位于
./src/main/resources/
中的credentials.json
文件。- 如果您想确认该程序是否有效,请将您的 terminal/cmd 设置为项目的根目录并输入
gradle run
- 如果您想确认该程序是否有效,请将您的 terminal/cmd 设置为项目的根目录并输入
在项目的根目录中,输入
grade jar
。这将在./src/build/libs/
文件夹 中创建一个 jar
- 在
./src/build/libs/
文件夹内,运行java -jar demo-1.0.jar
此时会出现上述错误
您似乎想要所谓的 "uber" jar(也包含其依赖项的 jar)
您可以通过
jar {
from configurations.runtime.collect { zipTree(it) }
}