2016-06-02 8 views
1

나는 배치를위한 준비하려고하기 때문에 나는 배포 또는 개발 중 하나의 WAR 파일에 포함됩니다 WEB-INF/classes/모든 이전에 올바른 구성 파일을 복사합니다. 뭔가가 내 프로젝트 디렉토리에서 실행됩니다 언제 개발 - 작업 - I 배포 구성 파일을 필요로 할 때이다 - 나는왜 타겟이 실행되지 않습니까?

mvn glcoud:deploy 

를 호출 할 때마다 배포-작업을 실행하려는 결국

.

지금 내가 정확히 어떻게 할 것인지 결정하지는 않았지만 무엇보다 먼저 그러한 "더미 작업"을 시도합니다. 불행히도 작동하지 않습니다.

내가 pom.xml에 구성된 프로파일입니다 : "안녕하세요"

<profile>  
    <id>default-profile</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
    <build> 
     <pluginManagement> 
      <plugins>     
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-antrun-plugin</artifactId> 
        <version>1.8</version>       
        <executions>       
         <execution> 
          <id>compile</id> 
          <phase>compile</phase> 
          <configuration> 
           <target> 
            <echo message="Hello World!"/> 
            <copy file="src/main/resource/x.xml" todir="src/main" /> 
           </target> 
          </configuration>          
          <goals> 
           <goal>run</goal> 
          </goals> 
         </execution> 
        </executions>       
       </plugin> 
      </plugins> 
     </pluginManagement> 
    </build> 
</profile> 

그것은 echo로 가정된다 와 B에에서 x.xml 파일을 복사 나는 의미 compile 단계에서이 작업을 수행하기로 결정

mvn clean compile 

실제로 target 실행 얻을 충분해야하지만 .. 난 여기 없을 것 그것이 효과가 있었다면.

질문 : 누군가 이것이 왜 실행되지 않는지 알고 있습니까? 댓글에서 언급 한 바와 같이


, 나는/build에서 pluginManagement를 제거해야 할 수 있습니다. 내가 질문 "How to solve “Plugin execution not covered by lifecycle configuration” for Spring Data Maven Builds"의 대답에 따라 pluginManagement을 추가 한

Plugin execution not covered by lifecycle configuration: org.apache.maven.plugins:maven-antrun-plugin:1.8:run (execution: compile, phase: compile) 

: 그러나이 나에게 말하는 오류를 줄 것이다.


아래 오류

<profile>  
    <id>default-profile</id> 
    <activation> 
     <activeByDefault>true</activeByDefault> 
    </activation> 
    <build> 
     <pluginManagement> 
      <plugins>     
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-antrun-plugin</artifactId> 
        <version>1.8</version>       
        <!-- --> 
        </executions>    
       </plugin> 
      </plugins> 
     </pluginManagement>   
     <plugins>   
      <plugin> 
       <artifactId>maven-antrun-plugin</artifactId> 
      </plugin> 
     </plugins> 
    </build>  

</profile> 

나는 동일한을보고하고 "라이프 사이클 구성에 포함되지 플러그인 실행"같은를주고 해결책 : 위해

<build> 
    <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build> 

<profiles> 
    <profile>  
     <id>default-profile</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation>  
     <build> 
      <pluginManagement> 
       <plugins>     
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-antrun-plugin</artifactId> 
         <version>1.8</version>       
         <!-- -->     
        </plugin> 
       </plugins> 
      </pluginManagement> 
     </build>  
    </profile>  
<profiles> 
+0

는''요소를 제거, 즉, 빌드/plugins''에 넣어 아니라'빌드/pluginManagement' 섹션에 있습니다. –

+0

@ A.DiMatteo 그렇지 않으면 m2e가 다른 [질문] (http://stackoverflow.com/questions/6352208/how-to-solve-plugin-execution-not-covered-)에서 설명한대로 오류를 식별하기 때문에 추가해야했습니다. by-lifecycle-configuration-for-sprin)을 지원합니다. – displayname

+1

아아, 설명에 너무 길어서 답변을 작성해야합니다.ok –

답변

2

을 m2e를 행복하게 만들고 요구 사항을 충족 시키려면 다음을 시도하십시오.

<build> 
    <pluginManagement> 
     <plugins>     
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.8</version>       
       <executions>       
        <execution> 
         <id>compile</id> 
         <phase>compile</phase> 
         <configuration> 
          <target> 
           <echo message="Hello World!"/> 
           <copy file="src/main/resource/x.xml" todir="src/main" /> 
          </target> 
         </configuration>          
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions>       
      </plugin> 
     </plugins> 
    </pluginManagement> 
    <plugins> 
     <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
     </plugin> 
    </plugins> 
</build>  

기본적으로 플러그인의 artifactId을 반복하는 plugins 섹션이 추가됩니다.

여기 무슨 일이야 :

  • 을 우리가 메이븐을 이야기하는 pluginManagement 섹션을 통해 : (POM 구성 또는 명령 줄 실행을 통해) 빌드가이 플러그인을 실행해야 할 때마다, 다음 기본이 구성에이 버전을 적용 메이븐과 이클립스 사이
  • m2e 그다지 완벽하지 통합 실행은 우리가 효과적으로 plugins 섹션을 통해
  • 를 선언하지 않는 한 그러나 어떤 플러그인 실행 이제까지 우리가 정말이에요 결국 있습니다 일어나지 않습니다,이 플러그인 구성에 대한 드릴 것입니다 loy는 빌드를 정의하고 Maven에게 빌드 플랜에이 플러그인을 추가하도록 알려줍니다. 버전, 구성 또는 실행을 지정하지 않아도됩니다. 기본 설정/동작으로 적용될 pluginManagement (즉, 플러그인 관리)으로 이미 정의했기 때문입니다.

플러그인과 pluginManagement의 차이점에 대한 자세한 내용은 reference post on SO: Maven: what is pluginManagement을 확인하십시오. 이러한 실행을위한 관련 phase


또한 참고 : prepare-package 단계 compile보다 더 (의미 론적으로 정확하고 maintenability 친화적 인) 선택이 될 것입니다. 자세한 내용은 official Build Lifecycle phases list을 확인하십시오. prepare-package :

실제 포장 전에 패키지를 준비하는 데 필요한 모든 작업을 수행하십시오.


는 업데이트
이 나타납니다뿐만 아니라 더 나은 선택이 될 것 prepare-package 단계 위의 설명, 그러나 또한 올바른 단계는 m2e이 경우에 완벽하게 행복 플러그인 있도록한다.

+0

Nit-pick하지만 분명히 패키징의 올바른 설정을 설정하기 위해 호출되어야하기 때문에 ' prepare-package'을 가지고 있습니다. – Tunaki

+0

@ Tunaki 확실히 좋은 점, 내 초점은 빌드 구성에 있었지만 이것은 분명히 추가하고 명확히 할만한 가치가 있습니다. 그에 맞게 업데이트하겠습니다! –

+0

그것 .. 작동하지 않습니다 .. http://pastebin.com/gq31t34d XD – displayname

1

POM Reference, Plugin Management를 참조하십시오 그러나

  • pluginManagement

    , 이것은 단지 실제로 어린이 플러그인 요소 내에서 참조되는 플러그인을 구성합니다. <pluginManagement>에서 플러그인을 선언하는 의미

는 이야기의 절반이다. 실제로 목표를 실행하려면 <build>/<plugins> 섹션에서도이를 선언해야합니다. 귀하의 경우에는

:

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-antrun-plugin</artifactId> 
    </plugin> 
    </plugins> 
</build> 
+0

제안 된 솔루션으로 내 질문을 업데이 트했지만 여전히 동일합니다 :/ – displayname

+0

여전히 동일 .. :/그 모든 시도했습니다 – displayname

+0

당신의 대답은 지금까지 올바른지하지만 다른 문제는 단계' 어쨌든 +1을 컴파일하십시오. – displayname

관련 문제