2010-06-17 202 views
7

我想让一个任务在gradle中运行我的Jar文件。gradle runJar任务?

我想出了以下内容:

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

但是,我无法找到路径的jar文件。任何帮助非常感谢。谢谢!

Misha

编辑:好吧,这很奇怪。这个任务在编译之前运行等。

编辑:修正。关键是在doLast {}符号,或者,在速记

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

米莎

回答

1

到目前为止,我最好的解决办法:

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

谢谢!

Misha

+1

嗨!我已经尝试了你的解决方案,但是我没有从jar中得到输出 - 我只能得到一个Java Result:1信息,尽管我在我的main方法中有'System.out'的问题...我怎样才能得到输出? – emesx 2012-03-17 09:33:38

+0

我需要提供**参数**。 – 2016-11-02 21:47:37

2

您应该能够使用jar.archivePath变量;

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

如何在这里提供**参数**? – 2016-11-02 21:47:24

+1

示例:http://stackoverflow.com/questions/10033853/how-to-pass-arguments-to-ant-java-method-in-groovy – TheKaptain 2016-11-15 20:49:49

9

Koppor的答案完美。

随着的src/main/java的一个Main.java,我的build.gradle文件看起来像

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

mainClassName = "Main" 

运行它给:

gradle run     

:compileJava 
:processResources UP-TO-DATE 
:classes 
:run 
[Main.java's output]