2016-06-01 406 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仓库中。感谢您的帮助