0

我有一个生成设置运行各种任务时,我运行mvn release:preparemvn:release:perform。具体来说,我设置了一个阶段,以便我的javadoc和源插件只在我发布时运行。这使我的构建可以避免mvn clean install的常见情况。我想添加到我的maven-assembly-plugin jar -with-dependencies,所以只有当我释放程序集插件运行。maven发布插件与阶段和罐与依赖关系

这里是我的构建是什么样子:

<?xml version="1.0" encoding="UTF-8"?> 
<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>example</groupId> 
    <artifactId>example</artifactId> 
    <version>1.0.0-SNAPSHOT</version> 
    <packaging>jar</packaging> 

    <name>Example</name> 

    <build> 
     <plugins> 
      <plugin> 
       <artifactId>maven-release-plugin</artifactId> 
       <version>2.4.1</version> 
       <configuration> 
        <releaseProfiles>release</releaseProfiles> 
        <goals>deploy</goals> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    <profiles> 
     <profile> 
      <id>release</id> 
      <activation> 
       <activeByDefault>false</activeByDefault> 
      </activation> 
      <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> 
           <goals> 
            <goal>jar</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-javadoc-plugin</artifactId> 
         <version>2.9</version> 
         <executions> 
          <execution> 
           <id>attach-javadocs</id> 
           <goals> 
            <goal>jar</goal> 
           </goals> 
          </execution> 
         </executions> 
         <configuration> 
          <doclet>org.asciidoctor.Asciidoclet</doclet> 
          <docletArtifact> 
           <groupId>org.asciidoctor</groupId> 
           <artifactId>asciidoclet</artifactId> 
           <version>0.1.3</version> 
          </docletArtifact> 
          <linksource>true</linksource> 
         </configuration> 
        </plugin> 
        <plugin> 
         <groupId>org.apache.maven.plugins</groupId> 
         <artifactId>maven-assembly-plugin</artifactId> 
         <version>2.4</version> 
         <configuration> 
          <descriptorRefs> 
           <descriptorRef>jar-with-dependencies</descriptorRef> 
          </descriptorRefs> 
         </configuration> 
         <executions> 
          <execution> 
           <id>make-assembly</id> 
           <goals> 
            <goal>single</goal> 
           </goals> 
          </execution> 
         </executions> 
        </plugin> 
       </plugins> 
      </build> 
     </profile> 
    </profiles> 
</project> 

行家源,插件和Maven的Javadoc的插件无论是在发布阶段运行,但Maven的组装插件没有。在Maven发行版中运行此插件需要做些什么?

回答

1

single未绑定到默认阶段,因此您必须在执行块中指定它。 如果您将其与javadoc:jar进行比较,您会发现此目标默认绑定到包装阶段。