2010-05-02 1 views
16

내가 설정 한 다음 조립 : Maven 어셈블리 플러그인이 attachName = true로 설치하는 데 finalName을 사용하지 않습니까?

  • distribution-test.zip
  • 내 기대에 대한

    • distribution-prod.zip :

      <build> 
          <plugins> 
           <plugin> 
            <artifactId>maven-assembly-plugin</artifactId> 
            <version>2.2-beta-5</version> 
            <executions> 
             <execution> 
              <id>${project.name}-test-assembly</id> 
              <phase>package</phase> 
              <goals> 
               <goal>single</goal> 
              </goals> 
              <configuration> 
               <appendAssemblyId>false</appendAssemblyId> 
               <finalName>${project.name}-test</finalName> 
               <filters> 
                <filter>src/assemble/test/distribution.properties</filter> 
               </filters> 
               <descriptors> 
                <descriptor>src/assemble/distribution.xml</descriptor> 
               </descriptors> 
               <attach>true</attach> 
              </configuration> 
             </execution> 
             <execution> 
              <id>${project.name}-prod-assembly</id> 
              <phase>package</phase> 
              <goals> 
               <goal>single</goal> 
              </goals> 
              <configuration> 
               <appendAssemblyId>false</appendAssemblyId> 
               <finalName>${project.name}-prod</finalName> 
               <filters> 
                <filter>src/assemble/prod/distribution.properties</filter> 
               </filters> 
               <descriptors> 
                <descriptor>src/assemble/distribution.xml</descriptor> 
               </descriptors> 
               <attach>true</attach> 
              </configuration> 
             </execution> 
            </executions> 
           </plugin> 
          </plugins> 
      </build> 
      

      이 두 개의 지퍼 파일을 생성 속성 attach = true은 두 개의 zip 파일이 pr에 지정된 이름으로 설치된다는 것입니다. 오페라 최종 이름. 하지만 결과적으로 아티팩트에 하나의 파일 만 설치 (첨부)됩니다. 받는다는 프로토콜은 다음과 같습니다

      • distrib-0.1-SNAPSHOT.zip
      • distrib-0.1-SNAPSHOT.zip

      플러그인이 이슈-ID property 대신 finalName의를 사용하고 있습니다에게! 이것은 버그입니까?

      마지막 설치는 첫 번째를 덮어 쓰기한다. 이 두 파일을 다른 이름으로 설치하려면 어떻게해야합니까? 당신의 조사

      감사합니다. 롤랜드

    답변

    19

    마지막 설치가 첫 번째 설치를 덮어 씁니다. 이 두 파일을 다른 이름으로 설치하려면 어떻게해야합니까?

    예상대로 (버그인지 여부는 모르지만 어셈블리 플러그인 작동 방식). 이를 방지하기 위해 (즉, 두 개의 어셈블리 디스크립터를 사용) testprod-idfinalName${project.name}하고 assemby을 변경, 동등한 결과를 획득하기 위해, trueappendAssemblyId 속성을 설정해야 할 것이다. 이런 식으로 뭔가 :

    <build> 
        <plugins> 
        <plugin> 
         <artifactId>maven-assembly-plugin</artifactId> 
         <version>2.2-beta-5</version> 
         <executions> 
         <execution> 
          <id>${project.name}-test-assembly</id> 
          <phase>package</phase> 
          <goals> 
          <goal>single</goal> 
          </goals> 
          <configuration> 
          <appendAssemblyId>true</appendAssemblyId> 
          <finalName>${project.name}</finalName> 
          <filters> 
           <filter>src/assemble/test/distribution.properties</filter> 
          </filters> 
          <descriptors> 
           <descriptor>src/assemble/distribution-test.xml</descriptor> 
          </descriptors> 
          </configuration> 
         </execution> 
         <execution> 
          <id>${project.name}-prod-assembly</id> 
          <phase>package</phase> 
          <goals> 
          <goal>single</goal> 
          </goals> 
          <configuration> 
          <appendAssemblyId>true</appendAssemblyId> 
          <finalName>${project.name}</finalName> 
          <filters> 
           <filter>src/assemble/prod/distribution.properties</filter> 
          </filters> 
          <descriptors> 
           <descriptor>src/assemble/distribution-prod.xml</descriptor> 
          </descriptors> 
          </configuration> 
         </execution> 
         </executions> 
        </plugin> 
        </plugins> 
    </build> 
    

    경우 distribution-test.xmldistribution-prod.xml 선언 어셈블리 각각 idtestprod.

    +0

    은 (코드,하지만 원칙을 시도하지 않았다) 마법처럼 일했다 –

    관련 문제