[maven-2] Maven을 사용하여 프로그램을 어떻게 실행합니까?

Maven 목표가 Java 클래스의 실행을 트리거하도록하고 싶습니다. 나는 Makefile라인을 통해 마이그레이션하려고합니다 .

neotest:
    mvn exec:java -Dexec.mainClass="org.dhappy.test.NeoTraverse"

그리고 저는 현재하고있는 mvn neotest것을 생산하고 싶습니다 make neotest.

어느 쪽도 아니 간부 인 플러그인 문서메이븐 개미 작업 페이지는 간단한 예를 들어 어떤 종류 없었다.

현재 저는 다음 위치에 있습니다.

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.1</version>
  <executions><execution>
    <goals><goal>java</goal></goals>
  </execution></executions>
  <configuration>
    <mainClass>org.dhappy.test.NeoTraverse</mainClass>
  </configuration>
</plugin>

그래도 명령 줄에서 플러그인을 트리거하는 방법을 모르겠습니다.



답변

으로 글로벌 구성 당신이 간부-받는다는 – 플러그인 정의했다고 :

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.4.0</version>
  <configuration>
    <mainClass>org.dhappy.test.NeoTraverse</mainClass>
  </configuration>
</plugin>

호출 mvn exec:java명령 줄에서하는 클래스를 실행하도록 구성되어있는 플러그인을 호출합니다 org.dhappy.test.NeoTraverse.

따라서 명령 줄에서 플러그인을 트리거하려면 다음을 실행하십시오.

mvn exec:java

이제 exec:java표준 빌드의 일부로 목표 를 실행하려면 목표를 기본 수명주기 의 특정 단계 에 바인딩해야합니다 . 이렇게하려면 요소 에서 목표를 바인딩 할을 선언하십시오 .phaseexecution

<plugin>
  <groupId>org.codehaus.mojo</groupId>
  <artifactId>exec-maven-plugin</artifactId>
  <version>1.4</version>
  <executions>
    <execution>
      <id>my-execution</id>
      <phase>package</phase>
      <goals>
        <goal>java</goal>
      </goals>
    </execution>
  </executions>
  <configuration>
    <mainClass>org.dhappy.test.NeoTraverse</mainClass>
  </configuration>
</plugin>

이 예제를 사용하면 package단계 중에 클래스가 실행됩니다 . 이것은 단지 예일 뿐이며 필요에 맞게 조정하십시오. 플러그인 버전 1.1에서도 작동합니다.


답변

여러 프로그램을 실행하려면 profiles섹션이 필요했습니다 .

<profiles>
  <profile>
    <id>traverse</id>
    <activation>
      <property>
        <name>traverse</name>
      </property>
    </activation>
    <build>
      <plugins>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>exec-maven-plugin</artifactId>
          <configuration>
            <executable>java</executable>
            <arguments>
              <argument>-classpath</argument>
              <argument>org.dhappy.test.NeoTraverse</argument>
            </arguments>
          </configuration>
        </plugin>
      </plugins>
    </build>
  </profile>
</profiles>

그러면 다음과 같이 실행됩니다.

mvn exec:exec -Ptraverse


답변