2012-08-24 3 views
4

모든 Maven 하위 프로젝트에 동일한 .target 파일을 사용할 수 있습니까? 부모 .pom 파일에서Tycho에서 동일한 대상 플랫폼 다중 하위 프로젝트를 사용하는 방법

발췌문

<groupId>root.server</groupId> 
<artifactId>root.server</artifactId> 

나는 예외가 코드 조각 나는 아이 프로젝트 "깨끗한 MVN 설치"하려고하면 아이 .pom 파일

<groupId>child.project</groupId> 
<artifactId>child.project.parent</artifactId> 

       <target> 
        <artifact> 
         <groupId>root.server</groupId> 
         <artifactId>root.server</artifactId> 
         <version>${project.version}</version> 
         <classifier>targetfile</classifier> 
        </artifact> 
       </target> 

에서 : Could not resolve target platform specification artifact . 자식 프로젝트의 부모에서 "mvn clean install"을 시도하면 모든 것이 잘 동작합니다.

하나의 .target 파일을 모든 프로젝트 (상위 + 하위 프로젝트)에 재사용 할 수 있습니까?

+1

동일한 문제가보다 일반적인 설정에서도 발생합니다. 대상 파일과 해당 대상 플랫폼 구성이 모두 상위 프로젝트에있는 경우 -> 자식 만 빌드하면 빌드가 실패합니다. – oberlies

답변

10

가능한 것이므로 선호하는 방법입니다.

.target 파일 (예 : target-definition)에 대해 특별히 하위 모듈을 만들어야합니다. 이것은 pom 패키징 유형이있는 프로젝트 여야합니다. 또한 다음 코드를 포함해야한다 - 이것은 .target 파일에 액세스 할 수있는 다른 모듈을 허용하는 작품이다 : 당신은 또한 사용할 target-platform-configuration 자녀 모듈이 모듈을 참조 할 수 있습니다 POM 부모 지금

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.3</version> 
    <executions> 
     <execution> 
     <id>attach-artifacts</id> 
     <phase>package</phase> 
     <goals> 
      <goal>attach-artifact</goal> 
     </goals> 
     <configuration> 
      <artifacts> 
      <artifact> 
       <file>targetFilename.target</file> 
       <type>target</type> 
     <classifier>targetFilename</classifier> 
      </artifact> 
      </artifacts> 
     </configuration> 
     </execution> 
    </executions> 
    </plugin> 

을 그것은 :

<plugin> 
    <groupId>org.eclipse.tycho</groupId> 
    <artifactId>target-platform-configuration</artifactId> 
    <version>${tycho-version}</version> 
    <configuration> 
    <target> 
     <artifact> 
     <groupId>org.example</groupId> 
     <artifactId>target-definition</artifactId> 
     <version>1.0.0-SNAPSHOT</version> 
     <classifier>targetFilename</classifier> 
     </artifact> 
    </target> 
    </configuration> 
</plugin> 

또한 .target 파일이 미래의 일을 도와위한 포장 유형을 만들 수있는 enhancement request 있습니다.

+1

대단히 감사합니다 :)! – gosua

+0

대단히 감사합니다. :) –

관련 문제