2017-11-28 5 views
1

하나의 pom.xml로 먼저 maven-jar-plugin으로 jar 파일을 만들고 maven- jarsigner-plugin, 둘째, maven-assembly-plugin을 사용하여 tar.gz 패키지를 만들고, jar 파일과 기타 필요한 파일을 tar.gz에 복사합니다. 단지 tar.gz 패키지만으로도 충분하기 때문에 원격 저장소를 배포하기위한 tar.gz 패키지 만 있으면됩니다. "mvn deploy"명령을 실행하면 jar 및 tar.gz 패키지가 모두 배포됩니다. 원격 저장소에 jar 파일을 배포하지 않는 방법이 있습니까? 기본적으로maven : 하나의 pom.xml로 jar와 tar.gz를 만들고 있는데 jar를 배포하고 싶지 않다.

+0

읽기가 어렵습니다. 굵은 글씨체 등을 사용하십시오. 감사합니다 – kwoxer

+0

pom.xml을 (를) 공유하십시오. – jordiburgos

답변

0

메이븐 배포 플러그인 will deploy all the artifacts attached to your project or module, 즉 모두 당신의 의 .jartar.gz의 파일.

deploy:deploy은 특정 프로젝트에서 생성 된 아티팩트, 해당 개체 및 연결된 아티팩트를 자동으로 설치하는 데 사용됩니다.

<build> 
    ... 
    <plugins> 
     ... 
     <plugin> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <version>2.8.2</version> 
      <configuration> 
       <skip>true</skip> <!-- Skip the default deploy --> 
      </configuration> 
      <executions> 
       <!-- Deploy our tar.gz --> 
       <execution> 
        <phase>deploy</phase> 
        <goals> 
         <goal>deploy-file</goal> 
        </goals> 
        <configuration> 
         <file>${project.build.directory}/${project.build.finalName}.tar.gz</file> 
         <artifactId>${project.artifactId}</artifactId> 
         <groupId>${project.groupId}</groupId> 
         <packaging>tar.gz</packaging> 
         <version>${project.version}</version> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
     ... 
    </plugins> 
    ... 
</build> 

당신은 당신의 생성 tar.gz의 파일을 사용 <file>를 구성해야합니다 :

은 당신이 할 수있는 것은 같은 개인화 deploy:deploy-file 목표를 deploy:deploy 목표를 생략하고 구성합니다.

0

나는 당신의 제안을 시도했다. maven-deploy-plugin에서는 작동하지 않지만 maven-install plugin에서는 작동합니다. 여기 내 pom.xml 파일의 상대적인 부분은 다음과 같습니다

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-install-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <skip>true</skip> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>install</phase> 
      <goals> 
       <goal>install-file</goal> 
      </goals> 
      <configuration> 
       <file>${project.build.directory}/${project.build.finalName}-dev.tar.gz</file> 
       <artifactId>${project.artifactId}</artifactId> 
       <groupId>${project.groupId}</groupId> 
       <packaging>tar.gz</packaging> 
       <version>${project.version}</version> 
       <classifier>dev</classifier> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.8.2</version> 
    <configuration> 
     <skip>true</skip> 
    </configuration> 
    <executions> 
     <execution> 
      <phase>deploy</phase> 
      <goals> 
       <goal>deploy-file</goal> 
      </goals> 
      <configuration> 
       <url>http://repo/artifactory/snapshots</url> 
       <file>${project.build.directory}/${project.build.finalName}-dev.tar.gz</file> 
       <artifactId>${project.artifactId}</artifactId> 
       <groupId>${project.groupId}</groupId> 
       <packaging>tar.gz</packaging> 
       <version>${project.version}</version> 
       <classifier>dev</classifier>      
      </configuration> 
     </execution> 
    </executions> 
</plugin> 

받는다는 설치-플러그인은 원격 저장소에 tar.gz의와 항아리 두 파일을 배포 로컬 저장소 만 받는다는 - 전개 - 플러그인 만 tar.gz 파일을 설치한다 . 이 동작은 maven-deployer-plugin의 버그 일 수 있다고 생각합니다.

관련 문제