Я создаю простое приложение, которое хорошо запускается с использованием оболочки 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 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