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

mvn发布插件发布下一个快照而不是当前版本

荆钱明
2023-03-14

你好,我从我的工作站上释放了一个项目,没有任何问题。我最近尝试从1.0.0-Snapshot发布另一个项目。然而,当它实际发布时,它将1.0.1-快照发布到快照存储库,而不是1.1.0发布到快照存储库。我做了dryrun=真的,看起来很好。事实上,它将我默认为以下版本:

What is the release version for "Appname"? (...) 1.0.0: :
What is SCM release tag or label for "Appname"? (...) Appname-1.0.0: :
What is the new development version for "Appname"? (...) 1.0.1-SNAPSHOT: :

我接受所有的默认值。然而,当我执行“MVN Release:Perform”时,它是这样做的:

[INFO] Uploading: http://{corporate-nexus-site}/snapshots/{app-path}/1.0.1-SNAPSHOT/fei-logging-formatter-1.0.1-20140929.153303-1.jar
...
[INFO] [INFO] BUILD SUCCESS

我使用的是最新的maven,我手动添加了最新版本的插件。我可以使用相同的父级和settings.xml设置来发布另一个项目。在运行和准备之后查看属性文件,对我来说一切都是正确的。我认为最初我的发行版设置错误,并向快照存储库发布了一个版本,但正如您所看到的,它实际上认为它做得很好,并发布了一个快照。

非常困惑。

有什么想法可以尝试吗?

谢了。

更新:在这个项目中,我将pom从1.0.0-Snapshot更新到1.0.0,并进行了“MVN部署”,它将pom放在了我期望的发布版本中,当然没有提供所有的好处。

更新2: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>logging-formatter</groupId>
    <artifactId>logging-formatter</artifactId>
    <version>1.0.0-SNAPSHOT</version>
    <name>Logging Formatter</name>
    <description>logging tool to format your logging in the standard cn way.</description>
    <parent>
        <groupId>com.companyname.pom.parent.master</groupId>
        <artifactId>cn-pom-parent-master</artifactId>
        <version>2014.3.0</version>
    </parent>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.commons</groupId>
            <artifactId>commons-lang3</artifactId>
            <version>3.3.2</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.17</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
    <build>
    </build>
    <scm>
        <url>http://svn.sys.ds.companyname.com/svn/cn-logging</url>
        <connection>scm:svn:http://svn.sys.ds.companyname.com/svn/cn-logging</connection>
        <developerConnection>scm:svn:http://svn.sys.ds.companyname.com/svn/cn-logging</developerConnection>
    </scm>
    <organization>
        <name>CompanyName Enterprises</name>
    </organization>
    <ciManagement>
        <system>Jenkins</system>
        <url>http://jenkins.sys.ds.companyname.com:8080/job/cn-logging-DEVELOP/</url>
    </ciManagement>
</project>

更新3:添加父设置信息

      SETTINGS.XML
      <repositories>
        <repository>
          <id>fei-releases</id>
          <name>Ferguson Release Repository</name>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
          <url>http://{companyname}/nexus/content/repositories/releases</url>
          <layout>default</layout>
        </repository>
        <repository>
          <id>fei-snapshots</id>
          <name>Ferguson Snapshot Repository</name>
          <releases>
            <enabled>false</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </snapshots>
          <url>http://{companyname}/nexus/content/repositories/snapshots/</url>
          <layout>default</layout>
        </repository>
        <repository>
          <id>fei-thirdparty</id>
          <name>Ferguson 3rd Party Repository</name>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
            <checksumPolicy>warn</checksumPolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
            <updatePolicy>never</updatePolicy>
            <checksumPolicy>fail</checksumPolicy>
          </snapshots>
          <url>http://{companyname}/nexus/content/repositories/thirdparty/</url>
          <layout>default</layout>
        </repository>
      </repositories>

      PARENT REPOSITORIES:
    <repositories>
      <repository>
        <id>third-party</id>
        <name>3rd Party Repository</name>
        <url>http://{companyname}/nexus/content/repositories/thirdparty/</url>
        <layout>default</layout>
      </repository>
    </repositories>
    <pluginRepositories/>

    PARENT DISTRIBUTION MANAGEMENT:
    <distributionManagement>
    <repository>
      <id>fei-releases</id>
      <name>Ferguson Release Repository</name>
      <url>http://{companyname}/nexus/content/repositories/releases</url>
      <layout>default</layout>
    </repository>
    <snapshotRepository>
      <id>fei-snapshots</id>
      <name>Ferguson Snapshot Repository</name>
      <url>http://{companyname}/nexus/content/repositories/snapshots</url>
      <layout>default</layout>
    </snapshotRepository>
  </distributionManagement>

共有1个答案

林项明
2023-03-14

我做了一个“MVN release:Clean release:Prepare”,然后做了一个“MVN release:Perform”,与我使用相同的父级发布另一个项目时没有问题的步骤相同。

那么您有另一个在发布后部署良好的项目吗?(你在回购中看到发行版本了吗)?

如果是这样,这听起来就像是你的“有问题的”项目中的一个问题。可以共享它的pom.xml吗?

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

  • 我有以下项目结构: 框架 框架父pom 构架某事 在框架-父母-pom的pom.xml中,我定义了以下插件: 并遵循SCM: 当我运行以下命令时。。。 ……一切似乎都很顺利。 在本地创建了带有发布版本的JAR,并且POM很好地更新到下一个SNAPSHOT版本。同样在SVN中,乍一看似乎还可以。标签已创建,其中包含所有框架项目。 但是,当查看标记的POM时,我看到它们仍然具有初始快照版本作为版本。这

  • 我有一个多模块项目。而且,我希望能够只做gradle发布,并发布所有模块的所有工件。其中一个问题是,当我包含插件时,我得到了名为“构建”的任务,但在根项目中找不到。 当我运行

  • 我的目标是发布一个具有单一依赖项的项目。我有一个nexus存储库,我在其中部署快照和发布版本。 我唯一的依赖性 我的nexus repo中发布了以下候选版本 当要求版本插件解决依赖关系时,它声称没有新的依赖关系可用。所以他认为 但是,如果在我的项目中有版本1.0.0-SNAPSHOT,那么版本1.1.0-RC1将解析为最新版本。 我错过了什么?(我查看了插件源代码,我们有以下片段: 对我来说这辆车

  • 我想使用Maven发布插件将候选发布版本发布到我的Nexus快照存储库。 将RC部署到Nexus不成问题,但我想使用和提供的工作流。 我面临的问题是插件不允许我提出的模式()。只接受常规版本模式,这些模式进入“发布”Nexus存储库。 我不知道其他人是如何将RC放入快照回购的,但看起来他们可能会使用常规的“部署”,这是我想避免的。 谢了。

  • 快照版本不会在快照存储库上发布,而是发布版本。 发布成功。没有错误。 唯一的变化是版本插件从2.3.2升级到2.5.2 也尝试了2.5.1和2.5.3,但都不起作用。 使用apache maven 3.5.0 步骤: mvn清洁安装 输出:在所有三个方面都取得成功 不确定我是否可以附加实际日志 代码片段pom.xml