2015-04-15 18 views
11

Tôi muốn chạy tệp jar với các tham số có tại C: /Users/nwuser/FitNesse/fitnesse-standalone.jar trong tập lệnh gradle của tôi. Tôi biết làm thế nào để làm điều đó mà không cần thông số:Chạy bình chứa các thông số trong gradle

apply plugin: 'java' 

task runJar(dependsOn:jar) << { 
    javaexec { 
    main="-jar"; args "C:/Users/nwuser/FitNesse/fitnesse-standalone.jar" 
    } 
} 

Nhưng bây giờ tôi muốn làm điều gì đó tương tự như (nếu sử dụng giao diện điều khiển):

java -jar fitnesse-standalone.jar -c "FrontPage?suite&format=text" 

Làm thế nào tôi có thể áp dụng -c "FrontPage bộ & định dạng = văn bản "bên trong kịch bản gradle của tôi?

Trân trọng!

+1

Theo Gradle 4.3, "Phương pháp Task.leftShift (Đóng cửa) đã được chấp nhận và được dự kiến ​​sẽ được loại bỏ trong Gradle 5.0. Thay vào đó, hãy sử dụng Task.doLast (Hành động). " – bonh

Trả lời

23

args là một mảng, vì vậy chỉ đơn giản là cung cấp luận cứ của bạn như vậy:

task runJar(dependsOn:jar) << { 
    javaexec { 
    main="-jar"; 
    args = [ 
      "C:/Users/nwuser/FitNesse/fitnesse-standalone.jar", 
      "-c", 
      "FrontPage?suite&format=text" 
      ] 
    } 
} 
0

Nếu bạn chỉ cố gắng để chạy một thử nghiệm bộ FitNesse với Gradle, bạn có thể thêm jar FitNesse để phụ thuộc của bạn :

repositories { 
    mavenCentral() 
} 

dependencies { 
    compile 'org.fitnesse:fitnesse:20161106' 
} 

và xác định một nhiệm vụ JavaExec như vậy:

task fitnesse(type: JavaExec) { 
    classpath = sourceSets.main.runtimeClasspath 

    main = 'fitnesseMain.FitNesseMain' 

    args '-c', 'FrontPage?suite&format=text' 
} 

Và sau đó chạy:

$ gradle fitnesse 
... 
Executing command: FrontPage?suite&format=text 
-------- 
0 Tests,  0 Failures  0.091 seconds. 
Các vấn đề liên quan