Java 클래스를 실행하기위한 Gradle (build.gradle을 수정하지 않고)
이 간단한 이클립스 플러그인 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
사용하십시오 JavaExec
. 예를 들어 다음을 입력하십시오.build.gradle
task execute(type:JavaExec) {
main = mainClass
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'.
의견에서 업데이트 :
mvn exec:java
gradle 에는 동등한 것이 없으므로 응용 프로그램 플러그인을 적용하거나 JavaExec 작업이 있어야합니다.
Gradle Application 플러그인 을 사용해야합니다 .
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"
}
기본 메인 클래스를 설정합니다.
'IT story' 카테고리의 다른 글
Maven으로 간단한 Java 10 / Java 11 프로젝트를 컴파일 할 수 없습니다 (0) | 2020.07.30 |
---|---|
Windows의 git diff가 "터미널이 완전히 작동하지 않는다"고 경고하는 이유는 무엇입니까? (0) | 2020.07.30 |
asyncio에서 요청을 어떻게 사용할 수 있습니까? (0) | 2020.07.30 |
Linq에서 Sql까지 임의의 행 (0) | 2020.07.30 |
PEM을 PPK 파일 형식으로 변환 (0) | 2020.07.30 |