Điều tôi đang cố gắng thực hiện là tạo một tác vụ trong build.gradle để thực hiện một lớp chính (lớp có phương thức chính), nhưng tôi không biết làm thế nào.Cách thực hiện nhiệm vụ gọi một lớp chính
Tôi đã thực hiện dự án thử nghiệm để kiểm tra cách thực hiện điều đó. Dưới đây là cách bố trí cấu trúc file:
testProject/
build.gradle
src/main/groovy/hello/world/HelloWorld.groovy
Dưới đây là nội dung của 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'
}
Dưới đây là nội dung của HelloWorld.groovy:
package hello.world
class HelloWorld {
public static void main(String[] args) {
println "Hello World!"
}
}
Dưới đây là những gì tôi nhận được từ 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
Vì vậy, câu hỏi của tôi là: làm thế nào tôi có thể làm cho gradle hello
hoạt động? Cảm ơn nhiều.
Vâng, đó là tất cả các quyền nếu tôi chỉ muốn một nhiệm vụ để chạy. Nếu tôi có nhiều nhiệm vụ chính thì sao? – JBT
Sau đó, bạn sử dụng tác vụ JavaExec. –
Giải pháp đơn giản hơn và thanh lịch hơn câu trả lời được chấp nhận – kellyfj