2016-08-22 2 views
1

Maven 프로젝트가 있고 프로젝트를 설치 한 후 스크립트를 실행해야합니다. 나는이 과정을 자동화하고 싶다. 내 생각 엔 pom 파일에 뭔가를 추가하여 자동화 할 수 있지만 설치 후 스크립트를 실행하는 방법을 찾지 못했습니다. 나는 maven 프로젝트가 설치를 완료하기 전에 스크립트를 실행하는 방법을 발견했다.Maven 설치 후 스크립트 실행

Maven 프로젝트가 끝나면 스크립트를 어떻게 실행할 수 있습니까? 순수 받는다는 중심의 접근 방식에 대한

+0

는 http://stackoverflow.com/a/2008258/4796021 –

+0

이 버전은 받는다는 전에 스크립트를 실행입니다 설치하십시오. 나는 maven3을 사용한다. – Dorin

+0

이런 종류의 Maven 모델 전체에 반대합니다. 실행해야하는 스크립트가 Maven을 설치 한 후에 나오면 Maven의 책임 범위를 벗어난 것 같습니다. Maven과 사후 설치 스크립트를 모두 실행하는 래퍼 스크립트 작성하는 것이 좋습니다. – rmlan

답변

0

, 당신이 찾고있는 대답은 exec-maven-pluginexec 목표이며,이 답변이 적용 ​​https://stackoverflow.com/a/2008258/3403663

편집 : OP는 위의 표시 그를 위해 작동하지 않습니다.

대체 접근 방식 : 방금 프로젝트 자체에서 다음을 시도했으며 아티팩트가 배포 된 후 설치 단계의 마지막 단계에서 ls을 실행합니다.

mvn clean install exec:exec -Dexec.executable="/bin/ls" -Dexec.args="/etc"

그렇지 않으면, 당신은 언제나 스크립트에서 전체를 래핑 수 :

#!/bin/bash 

set -o errexit 

mvn clean install 
<your other commands here> 
+0

링크의 솔루션이 작동하지 않고, maven 설치 전에 스크립트가 실행됩니다. 답장을 보내 주셔서 감사합니다. – Dorin

0

을 할 수 있습니다 체인 명령

$ mvn clean install && myscript.sh || echo "error." 
+0

답변 해 주셔서 감사합니다. 그러나 이것이 가능하다면 나는 포룸 (pom) 구성을 원한다. – Dorin

0

왜 당신이 뭔가를 할 수 없습니다 이? 이것은 정상적인 Maven 설치 단계 이후에 진행됩니다.

편집 : maven-install-plugin을 앞에 추가하면 maven은 pom에있는 순서대로 각 항목을 실행합니다.

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <version>2.5.2</version> 
    </plugin> 
    <plugin> 
    <artifactId>maven-antrun-plugin</artifactId> 
    <version>1.7</version> 
    <executions> 
     <execution> 
     <phase>install</phase> 
     <configuration> 
      <tasks> 
      <exec 
       dir="${project.basedir}" 
       executable="${project.basedir}/src/main/sh/do-something.sh" 
       failonerror="true"> 
       <arg line="arg1 arg2 arg3 arg4" /> 
      </exec> 
      </tasks> 
     </configuration> 
     <goals> 
      <goal>run</goal> 
     </goals> 
     </execution> 
    </executions> 
    </plugin> 

자료 : maven-antrun-plugin

+0

maven 설치가 끝나기 전에 pom의 빌드 태그에이 태그를 넣고 스크립트를 실행합니다. – Dorin

+1

exec 플러그인이 있습니다. 심각하게 개미와 체인을 연결하지 않아야합니다. –

1

사용 설치 위상을 지정하는 "실행"구성 블록과 연계 http://www.mojohaus.org/exec-maven-plugin/ 간부-받는다는 - 플러그인. 플러그인 같은 받는다는 설치-플러그인 (동일한 위상 이내) 순서대로 실행 한 후 확인이

(in build/plugins) 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <version>2.5.2</version> 
    </plugin> 
    <plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>exec-maven-plugin</artifactId> 
    <version>1.5.0</version> 
    <executions> 
     <execution> 
     <phase>install</phase> 
     <goals> 
      <goal>exec</goal> 
     </goals> 
     <configuration> 
      <executable>do-something.sh</executable> 
      <workingDirectory>/some/dir</workingDirectory> 
      <arguments> 
      <argument>--debug</argument> 
      <argument>with_great_effect</argument> 
      </arguments> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 
+0

maven 플러그인이 필요한 것만으로 개미 구성을 포함하지 마십시오. 따라서 Maven과 Ant 모두에 대한 구성 유지 관리가 포함됩니다! –

관련 문제