2017-06-22 45 views
1

我生气与mvn配置。 mvn clean deploy只生成主jar文件。不是javadoc,资源和标志等文件。如果我明确地调用mvn clean jar:jar javadoc:jar source:jar gpg:sign deploy - 它会生成javadoc和源代码等,但主jar是空的。mvn不生产所有artifcats

发生了什么! ?

<build> 
      <plugins> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-source-plugin</artifactId> 
        <version>2.2.1</version> 
        <executions> 
         <execution> 
          <id>attach-sources</id> 
          <phase>deploy</phase> 
          <goals> 
           <goal>jar-no-fork</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-javadoc-plugin</artifactId> 
        <version>2.9.1</version> 
        <executions> 
         <execution> 
          <id>attach-javadocs</id> 
          <phase>deploy</phase> 
          <goals> 
           <goal>jar</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-gpg-plugin</artifactId> 
        <version>1.5</version> 
        <executions> 
         <execution> 
          <id>sign-artifacts</id> 
          <phase>verify</phase> 
          <goals> 
           <goal>sign</goal> 
          </goals> 
         </execution> 
        </executions> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-compiler-plugin</artifactId> 
        <version>2.3.2</version> 
        <configuration> 
         <source>1.8</source> 
         <target>1.8</target> 
        </configuration> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-resources-plugin</artifactId> 
        <version>2.7</version> 
       </plugin> 
       <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-surefire-plugin</artifactId> 
        <version>2.20</version> 
        <configuration> 
         <suiteXmlFiles> 
          <suiteXmlFile>suite.xml</suiteXmlFile> 
         </suiteXmlFiles> 
         <properties> 
          <property> 
           <name>suitethreadpoolsize</name> 
           <value>1</value> 
          </property> 
         </properties> 
        </configuration> 
       </plugin>   
      </plugins> 
    </build> 
+0

您不需要为maven-jar-plugin添加阶段。只定义插件的版本。所有排除等不是必需的,因为这是默认的... – khmarbaise

+0

@khmarbaise感谢您的意见。我更新了POM。我仍然没有看到javadoc和源文件 – KitKarson

+1

将javadoc,源插件的阶段更改为'package'而不是deploy,然后尝试'mvn clean package' – khmarbaise

回答

1

将插件移动到<pluginManagement>部分之外。本部分用于管理您的插件或更确切地说,处理它们的版本。

激活发生此部分之外:

<build> 
    <pluginManagement> 
    <plugins> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-source-plugin</artifactId> 
     <version>2.2.1</version> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <version>2.9.1</version> 
     </plugin> 
    </plugins> 
    </pluginManagement> 
    <plugins> 
     <!-- Activation occurs here. If you have declared the version of the 
      plugin in the section above, then you can omit the version in 
      this section. 
     --> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-source-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>attach-sources</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
     <plugin> 
     <groupId>org.apache.maven.plugins</groupId> 
     <artifactId>maven-javadoc-plugin</artifactId> 
     <executions> 
      <execution> 
      <id>attach-javadocs</id> 
      <goals> 
       <goal>jar</goal> 
      </goals> 
      </execution> 
     </executions> 
     </plugin> 
    </plugins>  
</build> 

mvn package现在应该生成你想要的神器,如果你部署,他们将被自动拾取。

+0

谢谢@Daniel。根据你的建议,我用新的POM更新了问题。我删除了'pluginmanagement'。仍然没有运气。 javadoc和源不会生成! – KitKarson

+0

我已经更新了代码片段,使其更符合最佳实践,这意味着这些工件应该在'package'阶段生成。我通过删除执行的绑定阶段来完成此操作,该阶段默认为'package'。 – Daniel

+0

感谢Daniel的输入 – KitKarson

相关问题