2014-12-29 4 views
0

을 정의 나는 다음과 같은 상황이 :메이븐 프로파일 속성

parent.pom 
<profiles> 
    <profile> 
     <id>P1</id> 
     <activation> 
      <activeByDefault>true</activeByDefault> 
     </activation> 
     <build> 
      whatever 
     </build> 
    </profile> 
    <profile> 
     <id>P2</id> 
     <activation> 
      <property> 
       <name>prop1</name> 
      </property> 
     </activation> 
     <build> 
      whatever 
     </build> 
    </profile> 

아이가 새로 설치 "MVN 같은 프로파일을 지정 할 필요없이 프로파일 P2를 활성화에만"깨끗한 MVN 설치 "어떤 방법이 있나요을 - PP2 "또는"mvn clean install -Dprop1 "또는 settings.xml을 변경 하시겠습니까?

prop1은 구성이 아니거나 프로파일 P2를 활성화하는 구성입니다.

나는 시도했다 :

child.pom 
<properties> 
    <prop1>exists</prop1> 
</properties> 

하지만 내가 인해 http://maven.apache.org/guides/introduction/introduction-to-profiles.html

그래서, 누구도 한 또는 유사한 무언가를 필요로했다 예상대로 작동하지 않는 이유는 무엇입니까?

+0

실제로 무조건 활성화를 설명하는 경우 프로필 'P2'에 대해 ''를 'true'로 설정해야합니다 ('프로필'의 'P1'과 'P2'모두). 기본적으로 '활성'상태가됩니다). – mystarrocks

+0

이런 상황이 발생할 수 있습니까? 2 개의 프로파일이 기본적으로 활성화되어 있습니까? – mlecar

+0

그리고''과''은''의 활성화를위한 조건으로 사용하기위한 것이고,'Maven 2.0.9 '에서는 이들을 보간 할 수 있습니다. 지원되는 변수는'$ {user.home}'과 같은 시스템 속성과'$ {env.HOME}'과 같은 환경 변수입니다. – mystarrocks

답변

1

여기서 설명하는 것은 실제로 무조건 프로필을 활성화하려는 경우입니다. 따라서 당신은 <activeByDefault>을 통해 그것을 달성 할 수 있어야합니다. 당신이 P2<activeByDefault>true로 설정하면 사용자의 경우

, 당신은 그것을 볼 수 모두 P1P2 (그리고 그러한 프로파일) 기본적으로 활성화 된 프로파일 (예, 당신은 많은 profile의 당신을 활성화 할 수 있습니다 이 방법을 원한다).

하는이 프로필을 자동으로 모두 같은 POM의 다른 프로파일이 하지 않는 빌드를 위해 활성화됩니다 :하지만 같은 프로파일에 대한 경고와주의

mvn help:active-profiles

:이 동작이 방법을 확인할 수 있습니다 전술 한 방법 중 하나를 사용하여 활성화시킨다. 기본값으로 활성 인 모든 프로파일 은 POM의 프로파일이 명령 행 또는 활성화 구성을 통해 으로 활성화 될 때 자동으로 비활성화됩니다. <exists><missing>

는, 그들은 정말 Maven 2.0.9의로,이 태그는 보간 할 수 있습니다 있지만, 파일에 사용하기위한 것입니다. 생성 된 파일 타겟/소스 - 생성/axistools/WSDL2Java의/조직/아파치/받는다는 누락 때 문서를 인용

이 예에서는 프로파일을 유발한다.

메이븐 2.0.9, 태그의로

<profiles> 
    <profile> 
    <activation> 
     <file> 
     <missing>target/generated-sources/axistools/wsdl2java/org/apache/maven</missing> 
     </file> 
    </activation> 
    ... 
    </profile> 
</profiles> 
와는 을 보간 할 수있다. 지원되는 변수는 $ {user.home}과 같은 시스템 속성과 $ {env.HOME} 같은 환경 변수입니다. POM 자체에 정의 된 속성 및 값을 사용할 수 없다는 점에 유의하십시오. 여기에는 보간법이 적용됩니다. 위의 예제 활성화 도구는 $ {project.build.directory}를 사용할 수 없지만 경로 대상을 하드 코딩해야합니다.