2015-02-19 14 views
11

Ben gradle görev aracılığı benim main yöntemi çalıştırmak istiyorum "run" görevkoşmak ana yöntem

Bu benim cmd yoluyla çalıştırmak nasıl:

java -cp RTMonitor.jar com.bla.MainRunner first_arg

o yazılmalıdır nasıl

gradle?

run { 
    args += ['java -cp RTMonitor.jar com.bla.MainRunner first_arg'] 
} 

Ben

task myRun(type: JavaExec) { classpath configurations.main main = "com.bla.runners.StatsLogGenerator" args "arg1", "arg2" } 

denedim ve aldığım

Güncelleme:

Error:(71, 0) Could not find property 'main' on configuration container.

the I have tried: 
    task myRun(type: JavaExec) { 
     classpath "configurations.main" 
     main = "com.bla.runners.StatsLogGenerator" 
     args "arg1", "arg2" 
    } 

ve ben bir hata var:

FAILURE: Build failed with an exception. 
17:49:21.855 [ERROR] [org.gradle.BuildExceptionReporter] 
17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong: 
17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':myRun'. 
17:49:21.856 [ERROR] [org.gradle.BuildExceptionReporter] > Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 
17:49:21.864 [ERROR] [org.gradle.BuildExceptionReporter] 
17:49:21.865 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is: 
17:49:21.866 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':myRun'. 
17:49:21.867 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69) 

17:49:21.882 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.process.internal.DefaultExecHandle$ExecResultImpl.assertNormalExitValue(DefaultExecHandle.java:361) 
17:49:21.882 [ERROR] [org.gradle.BuildExceptionReporter] at org.gradle.process.internal.DefaultJavaExecAction.execute(DefaultJavaExecAction.java:31) 

ama IntelliJ aracılığıyla çalıştırdığınızda, her thig

cevap

20

en kolay uygulama eklenti kullanmak muhtemelen Tamam çalışır. Build.gradle öğesine apply plugin: 'application' ekleyin ve mainClassName = com.bla.MainRunner'u ayarlayın. ana sınıfa argümanları eklemek için çalışma görevi değiştirmek ve

run { 
    args += 'first_arg' 
} 

Sınıfyolu farklı bir isterseniz, çalıştırma görevin sınıf yolu özelliğini düzenleyebilir, ana sourceSet otomatik olarak elde edilmektedir args özelliğini düzenleyin. Eğer daha fazla özelleştirme gerekiyorsa

, bu

task myRun(type: JavaExec) { 
    classpath sourceSets.main.runtimeClasspath 
    main = "com.bla.MainRunner" 
    args "arg1", "arg2" 
} 
+0

ve iki ana yöntem varsa ne gibi tip JavaExec kendi görevi tanımlayabilir ve ben her biri için farklı bir görevi tanımlamak istediğiniz? 'mainClassName', global kapsamda atandı mı? –

+0

o zaman JavaExec –

+0

türünde kendi görevinizi tanımlamanız daha iyi olacaktır; buradaki belge, her bir görev türünün hangi özelliklere sahip olduğunu gösterir? –