이 간단한 이클립스 플러그인 Gradle을 실행하는 바로 사용이 발사 Gradle을에 줄 방법을 명령 있음.
Maven 컴파일 및 실행을위한 Gradle 아날로그 란?
mvn compile exec:java -Dexec.mainClass=example.Example
이 방법으로 모든 프로젝트를 gradle.build
실행할 수 있습니다.
업데이트 : 비슷한 질문이있었습니다 Java 앱을 실행하기위한 maven의 exec 플러그인에 해당하는 gradle은 무엇입니까? 전에 질문했지만 솔루션은 모든 프로젝트를 변경하도록 제안했습니다.build.gradle
package runclass;
public class RunClass {
public static void main(String[] args) {
System.out.println("app is running!");
}
}
그런 다음 실행 gradle run -DmainClass=runclass.RunClass
:run FAILED
FAILURE: Build failed with an exception.
* What went wrong:
Execution failed for task ':run'.
> No main class specified
답변
mvn exec:java
Gradle에 직접 해당하는 것은 없으며 application
플러그인을 적용 하거나 JavaExec
작업 이 있어야합니다 .
application
플러그인
플러그인 활성화 :
plugins {
id 'application'
...
}
다음과 같이 구성하십시오.
application {
mainClassName = project.hasProperty("mainClass") ? getProperty("mainClass") : "NULL"
}
명령 줄에서
$ gradle -PmainClass=Boo run
JavaExec
직무
작업을 정의합니다 execute
.
task execute(type:JavaExec) {
main = project.hasProperty("mainClass") ? getProperty("mainClass") : "NULL"
classpath = sourceSets.main.runtimeClasspath
}
실행하려면 gradle -PmainClass=Boo execute
. 당신은 얻을
$ gradle -PmainClass=Boo execute
:compileJava
:compileGroovy UP-TO-DATE
:processResources UP-TO-DATE
:classes
:execute
I am BOO!
mainClass
명령 줄에서 동적으로 전달되는 속성입니다. classpath
최신 수업을 픽업하도록 설정되어 있습니다.
mainClass
속성을 전달하지 않으면 두 방법 모두 예상대로 실패합니다.
$ gradle execute
FAILURE: Build failed with an exception.
* Where:
Build file 'xxxx/build.gradle' line: 4
* What went wrong:
A problem occurred evaluating root project 'Foo'.
> Could not find property 'mainClass' on task ':execute'.
답변
Gradle 애플리케이션 플러그인 만 사용하면됩니다 .
apply plugin:'application'
mainClassName = "org.gradle.sample.Main"
그리고 간단히 gradle run
.
Teresa가 지적했듯이 mainClassName
시스템 속성으로 구성 하고 명령 줄 인수로 실행할 수도 있습니다 .
답변
First Zero의 대답을 확장하면 gradle build
오류없이 실행할 수있는 무언가를 원한다고 생각 합니다.
모두 gradle build
와 gradle -PmainClass=foo runApp
이와 작업 :
task runApp(type:JavaExec) {
classpath = sourceSets.main.runtimeClasspath
main = project.hasProperty("mainClass") ? project.getProperty("mainClass") : "package.MyDefaultMain"
}
기본 기본 클래스를 설정합니다.
답변
매개 변수화하고 gradle clean build -Pprokey = goodbye를 전달할 수 있습니다.
task choiceMyMainClass(type: JavaExec) {
group = "Execution"
description = "Run Option main class with JavaExecTask"
classpath = sourceSets.main.runtimeClasspath
if (project.hasProperty('prokey')){
if (prokey == 'hello'){
main = 'com.sam.home.HelloWorld'
}
else if (prokey == 'goodbye'){
main = 'com.sam.home.GoodBye'
}
} else {
println 'Invalid value is enterrd';
// println 'Invalid value is enterrd'+ project.prokey;
}