2016-06-01 404 views
1

我需要從我的項目本身部署自定義的jar我重寫了maven-deploy-plugin的兩次執行以及它的默認執行。下面是我的pom.xml,其中包含distributionManagement和maven-deploy-plugin,用於我的部署。maven-deploy-plugin沒有執行它的執行

<groupId>mycompany</groupId> 
<artifactId>myproject</artifactId> 
<packaging>jar</packaging> 

<distributionManagement> 
    <repository> 
     <id>temp</id> 
     <name>Release Repository</name> 
     <url>http://localhost:8000/nexus/content/repositories/temp/</url> 
    </repository> 
</distributionManagement> 

<dependencies> 
    <dependency> 
     some dependency 
    </dependency> 

    <dependency> 
     some dependency 
    </dependency> 

    <dependency> 
     some dependency 
    </dependency> 
</dependencies> 
<build> 
    <plugins> 


     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-deploy-plugin</artifactId> 
      <executions> 
       <execution> 
        <id>default-deploy</id> 
        <phase>none</phase> 
       </execution> 

       <execution> 
        <id>myjar-one</id> 
        <phase>deploy</phase> 
        <configuration> 
         <repositoryId>temp</repositoryId> 
         <url>http://localhost:8000/nexus/content/repositories/temp/</url> 
         <packaging>jar</packaging> 
         <artifactId>myjar-one</artifactId> 
         <groupId>${project.groupId}</groupId> 
         <version>${project.version}</version> 
         <sources>${project.build.directory}/build/lib/myjar-one.jar</sources> 
        </configuration> 
       </execution> 


       <execution> 
        <id>myjar-two</id> 
        <phase>deploy</phase> 
        <configuration> 
         <repositoryId>temp</repositoryId> 
         <url>http://localhost:8000/nexus/content/repositories/temp/</url> 
         <packaging>jar</packaging> 
         <artifactId>myjar-two</artifactId> 
         <groupId>${project.groupId}</groupId> 
         <version>${project.version}</version> 
         <sources>${project.build.directory}/build/lib/myjar-two.jar</sources> 
        </configuration> 
       </execution> 
      </executions> 
     </plugin> 
    </plugins> 


</build> 

+0

你如何執行這個pom文件?你用什麼mvn命令來部署jar? – Nadir

+0

$ mvn clean deploy,它是一個多模塊項目,它將作爲reactor的最後一個模塊執行。 – Afgan

+0

你爲什麼試圖通過部署插件部署單獨的文件?沒有意義。只需使用'mvn clean deploy'。如果應該更好地使用這些庫,請將它們上傳到庫管理器(您似乎正在使用它),就是這樣。 – khmarbaise

回答

0

傢伙我弄清楚這個問題,有以下我需要解決的事情。

  1. 需要添加目標。
  2. 需要使用文件標籤而不是源標籤。 因此最終的maven-deploy-plugin看起來像。

    <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-deploy-plugin</artifactId> 
        <executions> 
         <execution> 
          <id>default-deploy</id> 
          <phase>none</phase> 
         </execution> 
    
         <execution> 
          <id>myjar-one</id> 
          <phase>deploy</phase> 
          <goals> 
           <goal>deploy-file</goal> 
          </goals> 
          <configuration> 
           <repositoryId>temp</repositoryId> 
           <url>http://localhost:8000/nexus/content/repositories/temp/</url> 
           <packaging>jar</packaging> 
           <artifactId>myjar-one</artifactId> 
           <groupId>${project.groupId}</groupId> 
           <version>${project.version}</version> 
           <file>${project.build.directory}/build/lib/myjar-one.jar</file> 
          </configuration> 
         </execution> 
    
    
         <execution> 
          <id>myjar-two</id> 
          <phase>deploy</phase> 
          <goals> 
           <goal>deploy-file</goal> 
          </goals> 
          <configuration> 
           <repositoryId>temp</repositoryId> 
           <url>http://localhost:8000/nexus/content/repositories/temp/</url> 
           <packaging>jar</packaging> 
           <artifactId>myjar-two</artifactId> 
           <groupId>${project.groupId}</groupId> 
           <version>${project.version}</version> 
           <file>${project.build.directory}/build/lib/myjar-two.jar</file> 
          </configuration> 
         </execution> 
        </executions> 
    </plugin> 
    

    解決了這個問題後,我的兩個自定義jar都被部署在我的maven倉庫中。感謝您的幫助