У меня есть простой Groovy-скрипт с одной зависимостью библиотеки Java:
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, чтобы я мог распространять его как таковой и запускать приложение из любого пути файловой системы, как это сделает логика сценария.зависеть от пути, с которого было вызвано выполнение.
Я пробовал несколько примеров банальных жирных банок, но ни один из них не работал для меня, поскольку файл .jar постоянно выдает Could not find or load main class Loading
, когда я пытаюсь его запустить.
Еслилюбой был бы так любезен, чтобы дать подсказку или показать пример задачи, которая могла бы выполнить сборку, которая соответствует моим описанным потребностям, я был бы очень благодарен.
Я знаю о Groovy-модуле Grape с аннотацией @Grab
, но я бы оставил это в качестве крайней меры, поскольку я не хочу, чтобы пользователи ждали загрузки зависимостей, и хотел бычтобы связать их с приложением.
Я использую Groovy 2.5.6 и Gradle 4.10 для проекта
Спасибо