Co próbuję zrobić, to wykonać zadanie w build.gradle, które wykona główną klasę (klasa z główną metodą), ale nie wiem jak.Jak wykonać zadanie wywoływania głównej klasy?
Zrobiłem projekt testowy, aby przetestować, jak to zrobić. Oto układ struktury pliku:
testProject/
build.gradle
src/main/groovy/hello/world/HelloWorld.groovy
Oto treść build.gradle:
apply plugin: 'groovy'
apply plugin: 'maven'
repositories {
mavenCentral()
}
dependencies {
compile 'org.codehaus.groovy:groovy-all:2.0.6'
}
task(hello, dependsOn: jar, type: JavaExec) {
main = 'hello.world.HelloWorld'
}
Oto treść HelloWorld.groovy:
package hello.world
class HelloWorld {
public static void main(String[] args) {
println "Hello World!"
}
}
Oto co ja get from shell:
testProject>$ gradle hello
:compileJava UP-TO-DATE
:compileGroovy UP-TO-DATE
:processResources UP-TO-DATE
:classes UP-TO-DATE
:jar UP-TO-DATE
:hello
Error: Could not find or load main class hello.world.HelloWorld
:hello FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':hello'.
> Process 'command '/Library/Java/JavaVirtualMachines/jdk1.7.0_25.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1
* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
BUILD FAILED
Total time: 4.232 secs
Moje pytanie brzmi: jak mogę wykonać gradle hello
? Dziękuję Ci bardzo.
Cóż, wszystko jest w porządku, jeśli chcę uruchomić tylko jedno zadanie. Co się stanie, jeśli mam wiele zadań z głównej klasy? – JBT
Następnie należy użyć zadania JavaExec. –
Znacznie łatwiejsze i bardziej eleganckie rozwiązanie niż zaakceptowana odpowiedź – kellyfj