2013-08-21 3 views
4

내 RCP 앱이 포함 된 압축 파일을 풀 때 접두어 디렉토리를 추가하려면 어떻게해야합니까? ?tycho materialize-product 및 archive-product에서 내 RCP 앱 아카이브 파일에 디렉토리 접두어를 사용하려면 어떻게해야합니까?

tycho가 내 rcp 응용을 materalizes 및 보관하면 디렉토리 접두사없이 target/products/my.rcp.app/linux/gtk/x86_64/내용을 압축합니다.

현재 우편 내용 :

  • ./features
  • ./plugins
  • ...

원하는 우편 내용 :

  • ./myapp/features
  • ./myapp/plugins
  • ...
  • 사용자가 우편 압축을 풉니 다

, 내가 원하는 응용 프로그램 디렉토리가 생성된다. 나는 타이코 (tycho) 문서를 살펴 봤지만, 아카이브도 구체화도 올바른 것을 구성하는 것처럼 보이지 않는다. 나는 항상 antrun 또는 어셈블리 플러그인을 사용하여 작업을 수행 할 수 있지만 문제를 해결하기위한 올바른 방법이 아니라고 느낍니다.

접두사 디렉토리를 추가하는 방법을 알려주세요.

답변

6

구성이 실제로 엉망입니다. 실제로는 documented이 아닙니다. 사용자 (현재)는 하나의 eclipse-repository 모듈에 여러 제품 파일을 가질 수 있으므로 구성을 적용하려는 제품 ID를 선택해야합니다.

그래서 ID product.id와 제품에 대한 아카이브의 루트 폴더를 설정하려면 다음과 같은 구성이 필요합니다

<build> 
    <plugins> 
    <plugin> 
     <groupId>org.eclipse.tycho</groupId> 
     <artifactId>tycho-p2-director-plugin</artifactId> 
     <version>${tycho-version}</version> 
     <executions> 
     <execution> 
      <id>materialize-products</id> 
      <goals> 
      <goal>materialize-products</goal> 
      </goals> 
     </execution> 
     <execution> 
      <id>archive-products</id> 
      <goals> 
       <goal>archive-products</goal> 
      </goals> 
     </execution> 
     </executions> 
     <configuration> 
     <products> 
      <product> 
      <id>product.id</id> 
      <rootFolder>myapp</rootFolder> 
      </product> 
     </products> 
     </configuration> 
    </plugin> 
    </plugins> 
</build> 
0

감사하지만 난 여분의 디렉토리를 추가 할 rootFolder 옵션을 사용하는 데 필요한. .product 파일에 achivePrefix를 주입하려고 시도했지만 작동하지 않았습니다. 나는 마침내 부서졌고, 타이코 소스를 움켜 잡았고 거꾸로 rootFolder를 찾았다. 이 여정 후, 나는 그것을 문서에서 보았고 그 의미를 알아 보았다.

문서 : http://wiki.eclipse.org/Tycho/Packaging_Types#Creating_Product_Zip_Files

관련 : https://issues.sonatype.org/browse/TYCHO-507

 <plugins> 
     <plugin> 
      <groupId>org.eclipse.tycho</groupId> 
      <artifactId>tycho-p2-director-plugin</artifactId> 
      <version>${tycho-version}</version> 
      <configuration> 
      <products> 
       <product> 
     <id>match-product-uid-field-from-foo.product-file</id> 
     <rootFolder>workbench</rootFolder> 
       </product> 
      </products> 
      </configuration> 
      <executions> 
       <execution> 
        <!-- install the product using the p2 director --> 
        <id>materialize-products</id> 
        <goals> 
         <goal>materialize-products</goal> 
        </goals> 
       </execution> 
       <execution> 
        <!-- create zip file with the installed product --> 
        <id>archive-products</id> 
        <goals> 
         <goal>archive-products</goal> 
        </goals> 
        <configuration> 
         <formats> 
          <linux>tar.gz</linux> 
          <win32>zip</win32> 
         </formats>       
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+1

귀하의 의견은 재미 있지만, 그냥이 내 대답 어떻게 다른지 궁금하네요 실제 응답 부분을보고? – oberlies

+0

죄송합니다. 동일합니다. 나는 잘못 읽었다. –