2009-07-13 3 views
0

내가 pom.xml 파일에 다음 프로파일을 정의 동작하지 않습니다 :는 maven2 프로필

<profiles> 
    <profile> 
     <id>dev</id> 
     <build> 
     <plugins> 
      <plugin> 
      <artifactId>maven-antrun-plugin</artifactId> 
      <executions> 
       <execution> 
       <phase>dev</phase> 
       <goals> 
        <goal>run</goal> 
       </goals> 
       <configuration> 
        <tasks> 
        <delete file="src/main/application/META-INF/data-sources.xml"/> 
        <copy file="src/main/resources/data-sources-dev.xml" tofile="src/main/application/META-INF/data-sources.xml"/> 
        </tasks> 
       </configuration> 
       </execution> 
      </executions> 
      </plugin> 
      <plugin> 
      <artifactId>maven-surefire-plugin</artifactId> 
      <configuration> 
       <skip>true</skip> 
      </configuration> 
      </plugin> 
     </plugins> 
     </build> 
    </profile> 
    </profiles> 

이슈는 그것이 작동하지 않는다는 것입니다!

mvn help:effective-pom -P dev 

프로필도 표시합니다.

그러나, 내가 할 경우

mvn -X -Pdev install 

/h 제는 부분은 로그에 표시되지 않습니다 복사합니다.

+0

pom2.xml 또는 pom.xml을 의미합니까? –

+0

죄송합니다. pom.xml. 편집 됨. – tputkonen

답변

3

이 이름 dev 아무 phase 없습니다. correct phase을 지정하십시오.

+0

이것은 -Pdev를 정의하여 단계가 아닌 프로필이므로 Maven은 프로필의 내용을 나머지 부분과 병합합니다 구성의. –

+0

죄송합니다. 다시 읽어보고 무슨 뜻인지 깨달았습니다. –

1

구성을 기본 POM으로 복사하여 붙여 넣기 만하면됩니다. 프로필뿐 아니라 구성에도 나타나지 않습니까? 출력을 파일로 리디렉션하고 "antrun"을 검색하면 유효 pom의 빌드 섹션에 선언 된 것을 볼 수 있습니다.

antrun 플러그인 구성을 실행하기 전에 해당 패키징 유형에 대한 유효한 단계에 바인딩해야합니다. jar 패키징을 가정 할 때 jar에서 내용을 사용할 수있게하려면 패키지 단계 이전이어야합니다. 나는 프로세스 리소스을 제안 할 것이다.

그래서 변경 :

<phase>dev</phase> 

에 :

<phase>process-resources</phase> 
+0

설정에 나타나는 것이 무엇을 의미합니까? antrun은 -X에 의해 생성 된 로그에 표시되지 않습니다. – tputkonen

+0

플러그인 구성은 효과적인 POM의 빌드 섹션에 help : output-pom으로 출력되어야합니다. Aaron의 답변에 따르면 목표를 실행하기 위해 유효한 단계를 정의해야한다고합니다 (예 : * process-resources *) –