java - mvn 不生成所有 Artifact

标签 java maven jar

我对 mvn 配置感到疯狂。 mvn clean deploy只生成主 jar 文件。不是javadoc、sources 和sign 等文件。如果我明确调用 mvn clean jar:jar javadoc:jar source:jar gpg:sign deploy - 它生成 javadoc 和源代码等,但主 jar 是空的。

这是怎么回事!! ?

<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>

最佳答案

将插件移至 <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现在应该生成您想要的 Artifact ,如果您部署,它们将被自动拾取。

关于java - mvn 不生成所有 Artifact ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44701210/

相关文章:

java - Shim-client java chaincode Hyperledger Fabric 1.1

java - 如何去掉pom.xml下的红线?

java - 如何从 Maven 项目制作 jar

java - 避免两次实现方法(已经扩展抽象类的类)

java - CORS 服务器上的客户端 Ajax 调用不包含凭据

java - 在 AsyncTask 中获取 IOException (Android Studio)

java - 从 jar 中搜索并提取文件。 java

java - JaCoCo 0.8.4 - 错误 : Could not find or load main class –javaagent:jacocoagent. jar

java - Jmeter测试在GUI上运行但不在maven上运行

java - 如何为 Spring 应用程序创建具有所有依赖项的 fat jar