2011-06-21 56 views
7

Tôi đang sử dụng plugin maven-antrun để thực hiện một loạt công việc với Ant, kết quả cuối cùng dẫn đến tệp zip. Tôi muốn triển khai tệp zip cho máy chủ maven của chúng tôi (Artifactory). Phần maven-antrun hoạt động như dự định và tạo thành công tệp nén; Tuy nhiên việc triển khai không thành công với thông báo lỗi sau:Làm cách nào để triển khai tệp zip được tạo bằng plugin maven-antrun?

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-deploy-plugin:2.6:deploy (default-deploy) on project projectname: The packaging for this project did not assign a file to the build artifact

tập tin POM của tôi là như sau:

<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/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>com.company.division</groupId> 
    <artifactId>projectname</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>pom</packaging> 

    <parent> 
     <groupId>com.company.product</groupId> 
     <artifactId>parentproject</artifactId> 
     <version>1.0.0</version> 
    </parent> 

    <distributionManagement> 
     <snapshotRepository> 
      <id>artifactory</id> 
      <name>artifactory-snapshots</name> 
      <url>http://localartifactoryserver/artifactory/libs-snapshot-local</url> 
      <uniqueVersion>false</uniqueVersion> 
     </snapshotRepository> 
    </distributionManagement> 

    <dependencies> 
     <!-- Some dependencies... --> 
    </dependencies> 

    <build> 
     <plugins> 
      <!-- Compiler plugin --> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>2.3.2</version> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
        <encoding>UTF8</encoding> 
        <optimize>true</optimize> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-antrun-plugin</artifactId> 
       <version>1.6</version> 
       <executions> 
        <execution> 
         <id>compile</id> 
         <phase>compile</phase> 
         <configuration> 
          <target> 
           <!-- Do lots of other stuff with Ant. --> 

           <!-- Create a zip file. --> 
           <zip basedir="mydir" destfile="${WORKSPACE}/MyZip.zip" /> 
          </target> 
         </configuration> 
         <goals> 
          <goal>run</goal> 
         </goals> 
        </execution> 
       </executions> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-deploy-plugin</artifactId> 
       <version>2.6</version> 
       <configuration> 
        <groupId>${project.groupId}</groupId> 
        <artifactId>${project.artifactId}</artifactId> 
        <version>${project.version}</version> 
        <packaging>zip</packaging> 
        <file>MyZip.zip</file> 
        <url>${project.distributionManagement.snapshotRepository.url}</url> 
       </configuration> 
       </plugin> 
     </plugins> 
    </build> 
</project> 

Khi tôi gọi này (từ POM mẹ) với mvn -U -pl projectname clean deploy tôi nhận được lỗi nói trên trong suốt giai đoạn triển khai. Có ai biết tôi đang làm gì sai hay làm thế nào tôi có thể sửa lỗi này?

Trả lời

10

Các giải pháp mà làm việc cho tôi (tôi không chắc chắn nếu nó là lý tưởng, nó có vẻ khá hackish) đã chuyển sang mục tiêu deploy:deploy-file:

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-deploy-plugin</artifactId> 
    <version>2.6</version> 
    <goals> 
     <goal>deploy-file</goal> 
    </goals> 
    <configuration> 
     <repositoryId>artifactory</repositoryId> 
     <packaging>zip</packaging> 
     <generatePom>true</generatePom> 
     <url>${project.distributionManagement.snapshotRepository.url}</url> 
     <artifactId>${project.artifactId}</artifactId> 
     <groupId>${project.groupId}</groupId> 
     <version>${project.version}</version> 
     <file>${WORKSPACE}/MyZip.zip</file> 
    </configuration> 
</plugin> 

và gọi nó một cách rõ ràng:

mvn -U -X -pl projectname clean install deploy:deploy-file 
+0

Giả sử dự án của bạn là ' pom ', người ta phải được thông báo rằng phụ thuộc transitive của dự án đó sẽ không được giải quyết (sau này là bởi các dự án khác), nếu bạn triển khai tạo phẩm theo cách này. – carlspring

+0

Điều gì sẽ được giải quyết sẽ là hiện vật. – carlspring

+0

Cuộc sống tiết kiệm. Tôi đã phải làm điều này trên dòng lệnh. Thật tuyệt khi biết cách thực hiện nó bên trong một tệp pom.xml. –

Các vấn đề liên quan