2009-11-17 3 views
1

나는 하위 프로젝트 인 Maven 프로젝트를 가지고있다. 그것은 많은 형제 프로젝트를 가지고 있으며이 프로젝트의 일은 형제 자매로부터 자원을 얻고 antrun 플러그인을 사용하여 zip 파일로 패키지하는 것입니다.허드슨의 모든 Maven 아티팩트 얻기

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> 
    <parent> 
     <artifactId>SystemOfRegistries</artifactId> 
     <groupId>someGroup</groupId> 
     <version>0.0.1-SNAPSHOT</version> 
    </parent> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>someGroup</groupId> 
    <artifactId>deploy-data</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <packaging>pom</packaging> 
    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <configuration> 
          <tasks> 
           <!-- 
            Place any Ant task here. You can add anything you can add 
            between <target> and </target> in a build.xml. 
           --> 
           <zip destfile="${project.build.directory}/${build.finalName}.zip" 
            whenempty="fail"> 
            <zipfileset dir="${project.parent.basedir}/build/AG" prefix="ag"/> 
           </zip> 
          </tasks> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

우편 번호 작성에 유용합니다. 그러나 문제는 지퍼가 빌드의 아티팩트가 아니라는 것입니다. 그리고 Hudson에는 다운로드 할 링크가 없습니다.

허드슨에게 Maven의 유물으로 인식되게하거나 Maven에게 ZIP 이 유물 인임을 알리는 방법을 알아 내고 싶습니다. (필자는 패키징 요소가 누락 된 상태였으며 원치 않는 JAR을 유물로 사용했습니다).

답변

1

당신은 빌드 도우미 메이븐 플러그인 (attach-artifact goal가) 특정 파일이 해당 프로젝트에 대한 유물의 Maven의 목록에 추가해야 받는다는 말할 것이다 빌더 - 도우미 - 받는다는 - 플러그인

<plugin> 
    <groupId>org.codehaus.mojo</groupId> 
    <artifactId>build-helper-maven-plugin</artifactId> 
    <version>1.3</version> 
    <executions> 
     <execution> 
      <id>attach-artifacts</id> 
      <phase>package</phase> 
      <goals> 
       <goal>attach-artifact</goal> 
      </goals> 
      <configuration> 
       <artifacts> 
        <artifact> 
         <file>${project.build.directory}/${build.finalName}.zip</file> 
         <type>zip</type> 
        </artifact> 
       </artifacts> 
      </configuration> 
     </execution> 
    </executions> 
</plugin> 
1

를 사용할 수 있습니다. 이 상황에서 포장을 "pom"으로 설정하는 것이 올바른 일입니다.

"설치"목표를 실행중인 경우 zip 파일도 로컬 메이븐 리포지토리에 복사되지만 메이븐 규칙에 따라 이름이 변경됩니다. 주의해야 할 것,이 유물에 따라 다운 스트림을 만들었 으면합니다.

+0

답변 해 주셔서 감사합니다. artifact 이름으로'$ {project.build.directory}/$ {build.finalName} .zip'을 사용하고 defaul finalName을 오버라이드하지 않았기 때문에 결과 artifact 이름은 maven insall과 동일합니다. Maven은 표준 Maven 명명 규칙이 이미 유물에 있고 두 번째에 두지 않으려한다고 생각합니다. – harschware