我有一个带有单个 java 库依赖项的简单 groovy 脚本:
package com.mrhacki.myApp
import me.tongfei.progressbar.ProgressBar
class Loading {
static void main(String[] arguments) {
List list = ["file1", "file2", "file3"]
for (String x : ProgressBar.wrap(list, "TaskName")) {
println(x)
}
}
}
我正在使用 gradle 来管理项目的依赖关系。该项目的 gradle 配置也非常简单:
plugins {
id 'groovy'
}
group 'com.mrhacki'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.3.11'
compile 'me.tongfei:progressbar:0.7.2'
}
如果我从 Intellij IDE 运行脚本,脚本会按预期执行。
我现在想做的是将具有这种依赖关系的脚本编译成一个 .jar 文件,这样我就可以这样分发它,并从任何文件系统路径运行应用程序,因为脚本逻辑将依赖于执行被调用。
我已经尝试了一些 gradle fat jars 示例,但没有一个对我有用,因为 .jar 文件Could not find or load main class Loading
在我尝试运行时不断抛出。
如果有人愿意提供提示或展示一个 gradle 任务的示例,该任务将执行符合我描述的需求的构建,我将非常感激。
我也知道带有@Grab
注释的 groovy 模块 Grape,但我将其作为最后的手段,因为我不希望用户等待依赖项下载,并希望将它们与应用程序捆绑在一起。
我在项目中使用 groovy 2.5.6 和 gradle 4.10
谢谢