当前位置: 首页 > 知识库问答 >
问题:

使用Maven Relelase插件准备发布阶段时出错

谭成业
2023-03-14

我是Maven的新手,正在尝试使用maven-release-plugin执行发布。运行mvn Release:Prepare后,我在控制台中收到以下信息:

null

我POM文件看起来像:

<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/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.mayacomp</groupId>
  <artifactId>feeder</artifactId>
  <version>1.0.3-SNAPSHOT</version>
  <packaging>jar</packaging>


  <url>http://maven.apache.org</url>


  <scm>
   <developerConnection>scm:svn:http://svn01/svn/DEV/Maya/Code/feeder/tag/feeder-1.0.3</developerConnection>
   <url>scm:svn:http://svn01/svn/DEV/Maya/Code/feeder/tag/feeder-1.0.3</url>
 </scm>

  <properties>

    <java.version>1.8</java.version>
    <jdk.version>1.8</jdk.version>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

  </properties>

  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>

   <dependency>
      <groupId>log4j</groupId>
      <artifactId>log4j</artifactId>
      <version>1.2.17</version>
    </dependency>


<dependency>
    <groupId>net.sf.opencsv</groupId>
    <artifactId>opencsv</artifactId>
    <version>2.3</version>
</dependency>


 <dependency>
    <groupId>org.apache.maven.shared</groupId>
    <artifactId>maven-shared-utils</artifactId>
    <version>0.7</version>
</dependency>

  <dependency>
    <groupId>org.apache.maven</groupId>
    <artifactId>maven-archiver</artifactId>
    <version>2.6</version>
</dependency>

<dependency>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-assembly-plugin</artifactId>
    <version>2.5.3</version>
</dependency>

<dependency>
    <groupId>org.apache.maven.shared</groupId>
    <artifactId>maven-common-artifact-filters</artifactId>
    <version>1.4</version>
</dependency>

  <dependency>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.5.2</version>
</dependency>

</dependencies>


  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
            <source>${jdk.version}</source>
            <target>${jdk.version}</target>
        </configuration>
      </plugin>

      <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-jar-plugin</artifactId>
          <version>2.6</version>
          <configuration>
            <archive>
                <manifest>
                    <mainClass>com.mayacomp.feeder.App</mainClass>
                </manifest>
            </archive>
          </configuration>
      </plugin>



    <plugin>
      <artifactId>maven-assembly-plugin</artifactId>
      <configuration>
        <archive>
          <manifest>
            <mainClass>com.mayacomp.feeder.App</mainClass>
          </manifest>
        </archive>
        <descriptorRefs>
          <descriptorRef>jar-with-dependencies</descriptorRef>
        </descriptorRefs>
      </configuration>
    </plugin>

     <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-release-plugin</artifactId>
       <version>2.5.2</version>
        <configuration>
                    <tagBase>http://svn01/svn/DEV/Maya/Code/feeder/tag</tagBase>
                    <branchBase>http://svn01/svn/DEV/Maya/Code/feeder/branches</branchBase>
                    <preparationGoals>clean install</preparationGoals>
                    <goal>deploy</goal>
                   <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
     </plugin>


    </plugins>
  </build>


<distributionManagement>
 <repository>
    <id>com-mayacomp-retail-release</id>
    <url>http://192.168.0.17::8080/nexus-webapp-2.11.0-02/content/repositories/com-mayacomp-retail-release</url>
  </repository>
   <snapshotRepository>
    <id>com-mayacomp-retail-snapshot</id>
    <url>http://192.168.0.17::8080/nexus-webapp-2.11.0-02/content/repositories/com-mayacomp-retail-snapshot</url>
  </snapshotRepository>
 </distributionManagement>

</project>

POM中的固定scm元素:

<scm> <developerConnection>scm:svn:http://svn01/svn/DEV/Maya/Code/Feeder/trunk</developerConnection>
<url>scm:svn:http://svn01/svn/DEV/Maya/Code/Feeder/trunk</url>
</scm>

共有1个答案

解阳荣
2023-03-14

不要将maven-assembly-pluginmaven-shared-utilsmaven-common-artifact-filtersmaven-release-plugin定义为依赖项。这些插件不需要定义为依赖项。它们与您的生产代码没有任何关联。此外,您不需要在maven-release-plugin配置中定义tagbasebranchbasepreparationgoalsgoal,因为它看起来在svn存储库中有一个默认的文件夹布局。

最重要的部分是,您需要更改scm条目以表示主干,而不是标记,如果您正在处理快照,这是默认的。

 类似资料:
  • Gradle 需要运行在一个 Java 环境里 安装一个 Java JDK 或者 JRE. 而且 Java 版本必须至少是 6 以上. Gradle 自带 Groovy 库, 所以没必要安装 Groovy. 任何已经安装的 Groovy 会被 Gradle 忽略. Gradle 使用任何已经存在在你的路径中的 JDK (可以通过 java -version 检查, 如果有就说明系统已经安装了 Ja

  • 我用的是孔晨的招摇maven插件。此外,我还使用maven发布插件。大摇大摆。由swagger maven插件生成的json不是repo的一部分。如果我用mvn包构建应用程序,那就太夸张了。json被生成并成为jar的一部分。 如果我用maven release插件发布应用程序,那就大摇大摆了。json不是jar文件的一部分。我查看了日志,发现maven release插件有三个步骤——发布:清理

  • 我无法理解以下几行之间的区别(http://docs.oracle.com/javase/specs/jls/se8/html/jls-12.html#jls-12.2 ) A) 准备工作包括将静态字段初始化为默认值。 b)类的初始化包括为类中声明的静态字段(类变量)执行初始化器。 这是否意味着'a'将在准备阶段分配默认值,'b'将在初始化阶段分配值:

  • 我正在使用maven发布插件进行发布管理。我运行mvn release:prepare on release分支。这样做的结果是,我有一个带有发布版本的git标记,以及带有下一个开发快照版本的发布分支。 现在,我想改变这个过程,以便发布分支总是有正式版本(没有SNAPSHOT版本的碰撞)。 这样做的原因是在生成构建时,我希望发布分支和发布标签具有相同的HEAD提交。 如果我可以跳过碰撞版本的最后一

  • 我以一个新的gradle用户的身份创建gradle版本,但我过去曾与maven合作过。 我试图重现maven发布插件的动作: 将分支版本更改为发行号(在svn提交) 如您所见,我正在使用: Nexus OSS作为版本控制库 SVN作为scm Gradle(2.8) 我正试图通过这两个插件实现我的目标: > 将分支版本更改为发行号(在svn提交) 创建标签(位于svn) 将分支版本更改为新快照编号(

  • 有什么建议吗? DS 代码为: 在其上运行命令的: 项目中的位置: