Как исправить путь к классам в стартовых скриптах, сгенерированных Gradle

Я создаю простое приложение, которое хорошо запускается с использованием оболочки gradle.

Теперь я хотел бы запустить его с помощью сценария оболочки. Я пытаюсь использовать задачу gradle startScripts, предоставляемую подключаемым модулем приложения, для создания такого сценария.

Вот команды, которые я пробовал:

n@laptop - ./gradlew clean build
BUILD SUCCESSFUL in 1s
9 actionable tasks: 9 executed

n@laptop - ./build/scripts/simple
Error: Could not find or load main class Main
Caused by: java.lang.ClassNotFoundException: Main

Вот мой build.gradle

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'application'

repositories {
    mavenCentral()
}

sourceCompatibility = 1.11
targetCompatibility = 1.11

application {
    mainClassName = 'Main'
}

dependencies {
    compile("org.apache.commons:commons-io:1.3.2")
    compile("org.apache.commons:commons-io:1.3.2")
    compile("javax.validation:validation-api:2.0.0.Final")
    compile("com.fasterxml.jackson.core:jackson-annotations:2.2.1")
    compile("com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.9.8")
    compile("org.hibernate:hibernate-validator:6.0.16.Final")
    compile("javax.el:javax.el-api:3.0.0")
    compile("org.glassfish:javax.el:3.0.0")
    compile("com.beust:jcommander:1.72")

    testCompile ("junit:junit:4.12")

    compileOnly "org.projectlombok:lombok:1.18.8"

    annotationProcessor 'org.projectlombok:lombok:1.18.8'
}

Gradle за прокси-сервером
Gradle за прокси-сервером
Создайте проект Gradle под сетевым прокси.
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
"DevOps: Jenkins & AWS Series, часть 5: Установка Gradle на Ubuntu 22.04
В этой статье блога мы проведем вас через процесс установки Gradle на Ubuntu 22.04, интеграции его с Jenkins и создания задания Gradle. Мы...
3
0
792
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не можете запустить сгенерированный скрипт напрямую из каталога Gradle build. Скрипт создается только там, но предназначен для использования как часть одного из встроенных архивов дистрибутива под build/distributions/. Например (при условии, что ваш проект называется simple и мы работаем в системе Unix):

# create a directory where we will install the built ZIP distribution
mkdir installdir
# unzip the ZIP distribution to the new install directory
unzip build/distributions/simple.zip -d installdir
# run the application using the generated script from the distribution
installdir/simple/bin/simple

Для справки, вот как будет выглядеть каталог установки для вашей сборки (со сгенерированными стартовыми скриптами в каталоге bin):

installdir/simple/
├── bin
│   ├── simple
│   └── simple.bat
└── lib
    ├── classmate-1.3.4.jar
    ├── commons-io-1.3.2.jar
    ├── simple.jar
    ├── hibernate-validator-6.0.16.Final.jar
    ├── jackson-annotations-2.9.0.jar
    ├── jackson-core-2.9.8.jar
    ├── jackson-databind-2.9.8.jar
    ├── jackson-datatype-jsr310-2.9.8.jar
    ├── javax.el-3.0.0.jar
    ├── javax.el-api-3.0.0.jar
    ├── jboss-logging-3.3.2.Final.jar
    ├── jcommander-1.72.jar
    └── validation-api-2.0.1.Final.jar

Кроме того, вы можете запустить свою программу прямо из Gradle, используя run задача плагина приложения:

./gradlew run

Другие вопросы по теме