메이븐 프로젝트의 메인 클래스를 실행하다
Maven으로 구축된 간단한 콘솔 Java 애플리케이션을 만들었습니다.다음과 같은 maven 명령을 사용하여 명령줄에서 메인 클래스(인수가 필요 없음)를 실행할 수 있는 방법이 있습니까?
mvn run-app com.example.MainClass
maven-exec-plugin을 사용해 보겠습니다.여기서부터:
mvn exec:java -Dexec.mainClass="com.example.Main"
그러면 JVM에서 클래스가 실행됩니다.사용할 수 있습니다.-Dexec.args="arg0 arg1"
의론을 통과시키다.
Windows 를 사용하고 있는 경우는, 다음의 견적을 적용합니다.
exec.mainClass
그리고.exec.args
:mvn exec:java -D"exec.mainClass"="com.example.Main"
정기적으로 이 작업을 수행하는 경우 pom.xml에 파라미터를 추가할 수도 있습니다.
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.2.1</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.example.Main</mainClass>
<arguments>
<argument>foo</argument>
<argument>bar</argument>
</arguments>
</configuration>
</plugin>
maven executive가 여기서 속임수를 쓰긴 하지만, 실제 테스트 치고는 꽤 형편없다는 것을 알게 되었다.메이븐 쉘을 기다리며 다른 사람들에게 도움이 되길 바라던 중, 드디어 이 레포엠브넥섹에 나왔습니다.
스크립트를 복제하고 경로 내 어딘가에 스크립트를 심볼링크합니다.사용하고 있다~/bin/mvnexec
내가 그랬던 것처럼~/bin
내가 가는 길에.mvnexec은 스크립트의 좋은 이름이라고 생각합니다만, 심볼링크를 변경하는 것은 당신에게 달려 있습니다.
프로젝트의 루트에서 src와 타겟 dir를 볼 수 있습니다.
스크립트에서는 메인 메서드를 사용하여 클래스를 검색하여 선택할 수 있도록 합니다(마벨화 JMeld 프로젝트의 예).
$ mvnexec
1) org.jmeld.ui.JMeldComponent
2) org.jmeld.ui.text.FileDocument
3) org.jmeld.JMeld
4) org.jmeld.util.UIDefaultsPrint
5) org.jmeld.util.PrintProperties
6) org.jmeld.util.file.DirectoryDiff
7) org.jmeld.util.file.VersionControlDiff
8) org.jmeld.vc.svn.InfoCmd
9) org.jmeld.vc.svn.DiffCmd
10) org.jmeld.vc.svn.BlameCmd
11) org.jmeld.vc.svn.LogCmd
12) org.jmeld.vc.svn.CatCmd
13) org.jmeld.vc.svn.StatusCmd
14) org.jmeld.vc.git.StatusCmd
15) org.jmeld.vc.hg.StatusCmd
16) org.jmeld.vc.bzr.StatusCmd
17) org.jmeld.Main
18) org.apache.commons.jrcs.tools.JDiff
#?
1개(입력번호)가 선택되면 인수를 입력하도록 요구됩니다( 를 사용하여 회피할 수 있습니다).mvnexec -P
)
기본적으로 모든 실행에서 프로젝트를 컴파일하지만mvnexec -B
테스트 클래스에서만 검색할 수 있습니다.-M
또는--no-main
또는 메인 클래스에서만-T
또는--no-test
.에는 이름별 필터 옵션도 있습니다.-f <whatever>
이게 시간을 좀 절약해주길 바라. 나한텐 그렇지.
언급URL : https://stackoverflow.com/questions/9846046/run-main-class-of-maven-project
'source' 카테고리의 다른 글
vue에서 created() 메서드를 사용하는 경우 (0) | 2022.08.29 |
---|---|
C 컴파일러는 연속된 할당을 휘발성 변수에 병합할 수 있습니까? (0) | 2022.08.29 |
v-for를 사용하는 동적 v-모델 (0) | 2022.08.29 |
objective-c typedef를 해당하는 문자열로 변환합니다. (0) | 2022.08.29 |
Quasar 프레임워크 데이터 테이블에서 선택한 행 ID 가져오기 (0) | 2022.08.28 |