2012-11-30 3 views
2

Nexus에서 add two zips to an already published version으로 변경하고 싶습니다.
기본적으로 응용 프로그램의 압축 된 데모이며 같은 응용 프로그램의 확장 된 버전이며 압축되어 있습니다.Maven Deploy Plugin을 만드는 방법은 특정 파일 만 업로드 하시겠습니까?

Deploy 플러그인을 사용하여 각 파일에 하나씩 두 개의 실행을 정의하고 배포 단계에 바인딩했습니다. 여기 데모의 하나는 다음과 같습니다

<execution> 
    <id>deploy-essential</id> 
     <phase>deploy</phase> 
     <goals> 
     <goal>deploy-file</goal> 
     </goals> 
     <configuration> 
     <file>${project.build.directory}/${project.artifactId}-${project.version}-demo.zip</file> 
     <groupId>${project.groupId}</groupId> 
     <artifactId>myproject</artifactId> 
     <version>${project.version}</version> 
     <classifier>demo</classifier> 
     <repositoryId>nexus</repositoryId> 
     <url>${targetrepository}</url> 
     <generatePom>false</generatePom> 
     </configuration> 
    </execution> 

내가 파일을 업로드하고이 실행이 나오면 주어진 G/A/V tothe 메타 데이터 좌표를 업데이트 할 메이븐을 기대했다. 그러나 주어진 파일을 업로드하면 정식 버전이 포함 된 자매 파일이 지정된 좌표에 업로드 된 다음 두 파일을 원래 좌표로 다시 업로드합니다.

그런 다음 두 번째 실행을 위해이 모든 작업을 다시 수행합니다. 여기 내 로그에서 발췌입니다 :

[INFO] --- maven-deploy-plugin:2.7:deploy-file (deploy-demo) @ bundle --- 
Downloading: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml 
2 KB 

Downloaded: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml (2 KB at 4.8 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/myproject-1.2.6-20121130.102624-5-demo.zip 
...   
Uploaded: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/myproject-1.2.6-20121130.102624-5-demo.zip (13032 KB at 23105.2 KB/sec) 
Downloading: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml 
533 B  

Downloaded: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml (533 B at 34.7 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml 
2 KB  

Uploaded: http://nexus/repositories/snapshots/mygroup/myproject/1.2.6-SNAPSHOT/maven-metadata.xml (2 KB at 89.4 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml 
533 B 

Uploaded: http://nexus/repositories/snapshots/mygroup/myproject/maven-metadata.xml (533 B at 32.5 KB/sec) 
Downloading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml 
861 B 

Downloaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml (861 B at 3.8 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-full.zip 
...   
Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-full.zip (13065 KB at 18531.7 KB/sec) 
Downloading: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml 
410 B  

Downloaded: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml (410 B at 8.5 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml 
861 B 

Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml (861 B at 27.1 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml 
410 B 

Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/maven-metadata.xml (410 B at 5.1 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-demo.zip 
...   
Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/bundle-1.2.6-20121130.102625-3-demo.zip (13032 KB at 13631.1 KB/sec) 
Uploading: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml 
861 B  

Uploaded: http://nexus/repositories/snapshots/mygroup/bundle/1.2.6-SNAPSHOT/maven-metadata.xml (861 B at 56.1 KB/sec) 

이 스냅 샷에 큰 일이 아니라, 완전히 넥서스 이후 블록의 출시 재배치를 거부하도록 구성되어 있습니다.

나는이 동작이 의도 된 것이라고 생각하지 않으며 무언가를 놓친 것이 확실합니다. Maven에 실제로 구성한 파일 만 업로드하도록 할 수 있습니까?

답변

1

현재 배포에 아티팩트를 첨부 할 수있는 어셈블리 플러그인을 사용하지 않거나 단순히 빌드에 다른 아티팩트를 첨부 할 수있는 build-helper-maven-plugin을 사용해야하는 이유는 무엇입니까? 일반적인 빌드 중에 deploy 플러그인을 사용하는 것은 잘못된 방법입니다.

+0

이 뭔가를해야합니다. 가장 큰 이유는 프로젝트 B와 C에 의존하는 프로젝트 A를 가지고있는 프로젝트 구조입니다. 배포하려는 A의 아티팩트이지만 B.가 정의한 그룹의 아티팩트입니다. 따라서 상황이 그대로 서서 부착하는 것은 선택 사항이 아닙니다. 결국 maven-only 해결책이 가능했지만, 결국 구조 조정을해야 할 것입니다. –

1

기본 배포 메커니즘을 비활성화하지 않았으므로 여전히 실행 중입니다.

 <plugin> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <executions> 
       <!-- disable standard deploy --> 
       <execution> 
        <id>default-deploy</id> 
        <phase>none</phase> 
       </execution> 
       <execution> 
        <id>deployEssential</id> 
        <phase>deploy</phase> 
        ... 
       </execution> 
      </executions> 
     </plugin> 
0

나에게 동일한 작업을 수행하기위한 최소한 두통 wagon-maven-plugin을했다 : 당신은 이미 어제 암시

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>wagon-maven-plugin</artifactId> 
    <version>1.0</version> 
    <executions> 
     <execution> 
      <id>deploy-release</id> 
      <phase>deploy</phase> 
      <goals> 
       <goal>upload</goal> 
      </goals> 
      <configuration> 
       <serverId>nexus</serverId> 
       <url>${targetrepository}</url> 
       <fromDir>${project.build.directory}</fromDir> 
       <toDir>${project.version}</toDir> 
       <includes> 
        ${project.artifactId}-${project.version}-demo.zip 
       </includes> 
      </configuration> 
     </execution> 
    </executions> 
</plugin>