2013-03-19 2 views
1

maven-deploy-plugin을 사용하여 파일을 배포하고 싶습니다. 현재 나는 다음과 같은 것을 가지고 있습니다 :maven-deploy-plugin repository

 <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <version>2.7</version> 
      <executions> 
       <execution> 
        <id>deploy-features-xml</id> 
        <phase>deploy</phase> 
        <goals> 
         <goal>deploy-file</goal> 
        </goals> 
        <configuration> 
         <repositoryId>${project.distributionManagement.snapshotRepository.id}</repositoryId> 
         <url>${project.distributionManagement.snapshotRepository.url}</url> 
         <groupId>${project.groupId}</groupId> 
         <artifactId>${project.artifactId}</artifactId> 
         <version>${project.version}</version> 
         <file>features.xml</file> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 

버전을 기준으로 스냅 샷과 릴리스 저장소를 변경하고 싶습니다. 프로젝트 버전이 1-SNAPSHOT이면 스냅 샷 저장소에 파일을 배포해야하며 프로젝트가 버전 1.0이면 파일을 릴리스 저장소에 배포해야합니다. 하지만 maven-deploy-plugin 하드 코드는이 코드를 사용하고 있습니까?

답변

2

나는 결국 build-helper-maven-plugin과 maven-resources-plugin을 사용했다. 이 설정은 jar와 pom 및 project와 함께 프로젝트/xml/기능으로 참조 될 수있는 xml 파일을 배포한다는 것을 의미합니다.

관련 치어 플러그인 :

 <plugin> 
      <groupId>org.codehaus.mojo</groupId> 
      <artifactId>build-helper-maven-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>attach-artifacts</id> 
        <phase>package</phase> 
        <goals> 
         <goal>attach-artifact</goal> 
        </goals> 
        <configuration> 
         <artifacts> 
          <artifact> 
           <file>target/features/features.xml</file> 
           <type>xml</type> 
           <classifier>features</classifier> 
          </artifact> 
         </artifacts> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-resources-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>copy-features</id> 
        <phase>generate-resources</phase> 
        <goals> 
         <goal>copy-resources</goal> 
        </goals> 
        <configuration> 
         <outputDirectory>target/features</outputDirectory> 
         <resources> 
          <resource> 
           <directory>src/main/features</directory> 
           <filtering>true</filtering> 
          </resource> 
         </resources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
+0

좋은 답변입니다. 나는 당신의 솔루션을 사용하여 결국. Karaf features.xml을 업로드하는 것처럼 보입니다. –

4

이 동작은 기본적으로 이미 제공됩니다. 하지만 repository manager을 사용해야합니다. mvn deploy를 통해 이슈를 간단하게 배포 할 수 있습니다. 일반적으로 SNAPSHOT 릴리즈는 SNAPSHOT 저장소로 들어갑니다. 릴리스가있을 경우 릴리스 저장소로 이동합니다.

+0

나는 그것이 기본적으로 제공됩니다 모르겠어요. 프로젝트는 이미 jar와 pom을 배포합니다. XML 파일을 자동으로 배포하는 또 다른 방법이 있습니까? –