문제

우리는 다중 모듈을 빌드와 모듈을 서로 다른 기술을 사용하여,다음과 같이 Java 와 코드.은 어떻게든 그것을 활성화할 다양한 프로필을 기반으로 모듈을 컴파일되는 현재?

나는 그것을 시도했는 다음과 같이 활성화

<profile>
  <id>flex</id>
  <activation>
    <file>
      <exists>${basedir}/src/main/flex</exists>
    </file>
  </activation>
  ...
</profile

하지만 그것은 작동하지 않았지만,사용${기본}가 문서에서 설명 Maven 문서 (이것은 버그에서 Maven).은 거기에 다른 가능성 있는 다른 활성화를 기반으로 현재 모듈?또는 Maven 만 허용 활성화에 대한 프로파일 모든 모듈나지 않나요?

도움이 되었습니까?

해결책

답을 찾는이 질문을 읽는 나 자신과 같은 사람들에게는이 유스 케이스가 이제 Maven 3에서 작동합니다.

초기 버전 3 에서이 기능에 영향을 미치는 버그가 있습니다 ( http://jira.codehaus.org/browse/mng-2363) 그러나 그것은 Maven 3.0.4를 사용하여 올바르게 작동합니다.

다른 팁

더 많은 연구를 마친 후 나는 이것이 현재 Maven 버전 (2.1.0)에서 두 가지 이유로 불가능하다는 결론에 도달했습니다.

  • Maven 프로파일은 상속되지 않으므로 부모 POM에서 프로파일을 정의하고 어린이 POM에서 활성화 할 수 없습니다.
  • POM 자체에서 프로파일을 활성화 할 가능성을 찾지 못했습니다. 활성화는 -D 옵션을 통해 전 세계적으로 지정된 시스템 설정에 대해서만 $ {basedir} 및 속성 활성화 응답으로 작동하지 않습니다.

에 2.2.1,프로필에는 상속되지만${기본}문제는 여전히있다.나는 같은 보트가 활성화에 필요한 프로필을 기반으로의 존재를 파일에서는 주어진 프로젝트입니다.내 아이는 빌드가 실행하는 개별적으로만 벌금(상속된 프로필에 의해 활성화된 로컬 파일이 존재)지만,실행하는 경우 빌드에서 최고의 부모,그들은 실패기 때문에 파일을 찾을 수 없습니다.

파일 기반 활성화와 관련하여 $ {basedir}를 제거 할 수 있습니다. 우리는 다음과 같이 사용합니다.

<activation>
   <file>
      <missing>target/jboss/conf/jboss-service.xml</missing>
   </file>
</activation>

이것이 도움이 될지 모르겠지만 다음 접근법과 비슷한 문제를 해결했습니다.

  1. 부모님의 프로필을 작성하고 설명했습니다. activeByDefault=false. 플러그인 관리 섹션에는 다른 플러그인에 대한 구성이 포함되어 있습니다.
  2. 아이들은이 프로필을 재사용하고 설정할 수 있습니다 activeByDefault=true이로 인해 프로파일을 활성화하지만 여전히 플러그인이 활성화되지 않습니다.
  3. 그러나 다행히 설명 된 플러그인 구성을 사용할 수 있습니다. 플러그인 섹션에서 어린이를 정의하여 어린이의 재사용을 재사용 할 수 있습니다. 당신은 단지 그룹과 인공물을 제공하고 inherited=true 각 플러그인마다 어린이를 재사용하려고합니다.

도움이되기를 바랍니다. 코드 스 니펫을 포함시키지 않아서 죄송하지만 Soutions가 이해할 수 있기를 바랍니다.

프로파일을 사용하려는 각 모듈에 속성을 설정 한 다음 프로파일에서 "속성"활성화를 사용할 수 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top