2010-06-17 52 views
7

Tôi đang cố gắng thực hiện một nhiệm vụ để chạy tệp Jar của tôi ở chế độ gradle.tác vụ runJar gradle?

tôi đã đưa ra như sau:

task runJar(dependsOn:[jar]){ 
    ant.java(jar:,fork:true) 
} 

Tuy nhiên, tôi không thể tìm thấy đường dẫn đến file jar. Bất kỳ giúp đỡ nhiều đánh giá cao. Cảm ơn bạn!

Misha

EDIT: OK điều này khá lạ. Tác vụ này chạy trước khi biên dịch, v.v. ???

EDIT: Đã sửa lỗi. Điều quan trọng là trong một doLast {} ký hiệu, hoặc trong viết tắt

task runJar(dependsOn:"jar")<<{ 
    ant.java(jar:"${libsDir}${File.separator}${archivesBaseName}.jar",fork:true) 
} 

Misha

Trả lời

1

giải pháp tốt nhất của tôi cho đến nay:

task runJar(dependsOn:[jar]){ 
    ant.java(jar:"${libsDir}${File.separator}${archivesBaseName}.jar",fork:true) 
} 

Cảm ơn bạn!

Misha

+1

Hi! Tôi đã thử giải pháp của bạn, nhưng tôi không có đầu ra từ jar - tôi chỉ nhận được một kết quả Java: 1 thông tin, mặc dù tôi đã viết thành 'System.out' trong phương thức' main' của mình ... Làm thế nào để tôi nhận được đầu ra? – emesx

+0

Tôi cần cung cấp ** args **. –

2

Bạn sẽ có thể sử dụng biến jar.archivePath;

task runJar(dependsOn:[jar]){ 
    ant.java(jar: jar.archivePath ,fork:true) 
} 
+0

Làm cách nào để cung cấp ** args ** tại đây? –

+1

Ví dụ tại đây: http://stackoverflow.com/questions/10033853/how-to-pass-arguments-to-ant-java-method-in-groovy – TheKaptain

9

Câu trả lời của Koppor hoạt động hoàn hảo.

Với Main.java trong src/main/java, file build.gradle của tôi trông giống như

apply plugin: 'java' 
apply plugin: 'application' 

mainClassName = "Main" 

Chạy nó mang lại:

gradle run     

:compileJava 
:processResources UP-TO-DATE 
:classes 
:run 
[Main.java's output] 
Các vấn đề liên quan