Я делаю простой пример HelloWorld из https://spring.io/guides/gs/gradle/.
Мне пришлось внести некоторые изменения (я использую Gradle 5.2.1 в Ubuntu 18) в build.gradle
.Я использовал упаковщик Gradlew.Мне удалось заставить работать такие задачи, как «сборка» и «запуск».Кажется, все генерируется правильно.Но запуск приложения без Gradle с использованием сгенерированного build/scripts/<appscript>
не работает.Запуск банки с
java -jar build/libs/hello-1.0.jar
работает.Но
./build/scripts/sayhello
не работает и выдает ошибку:
erno@moongate:~/Projects/java/sayhello$ ./build/scripts/sayhello
Error: Could not find or load main class hello.HelloWorld
Caused by: java.lang.ClassNotFoundException: hello.HelloWorld
Структура файла проекта выглядит так:
sayhello/
build.gradle
gradlew
src/
main/
java/
hello/
Greeter.java
HelloWorld.java
Мне пришлось добавить манифест иатрибут mainclass для файла конфигурации сборки, поскольку кажется, что gradle init --type java-application
этого не делает.Это означает, что даже попытка запустить сгенерированный базовый проект не работает.
My build.gradle
выглядит так:
plugins {
id 'java'
id 'application'
}
mainClassName = 'hello.HelloWorld'
repositories {
mavenCentral()
jcenter()
}
dependencies {
compile "joda-time:joda-time:2.10"
testCompile "junit:junit:4.12"
}
jar {
manifest {
attributes(
'Main-Class': 'hello.HelloWorld'
)
}
baseName = 'hello'
version = '1.0'
}