Задачи для сборки и запуска работ, но выполнение сгенерированным сценарием запуска не - PullRequest
0 голосов
/ 10 марта 2019

Я делаю простой пример 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'
}
...