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

Maven版本:准备:无法准备版本,因为您有本地修改

孟智志
2023-03-14

我正面临一个问题与连续体的发布:准备阶段失败在scm-check-修改步骤与错误:

[ERROR] org.apache.maven.shared.release.ReleaseFailureException: 無法準備發行版本,因為你有本地修改: [pom.xml:modified]

我所做的:

  1. 我将所有更改(*. java和pom.xml)提交到SVN
  2. 我在连续体中构建了这个项目
  3. 我开始了发布的准备工作。

我知道 scm-check-modifications 调用 ScmCheckModificationsPhase 类,该类验证与 SCM 上的内容相比没有本地更改。

我理解如果我只使用Maven,如果本地代码有一些变化,或者本地代码和SVN之间有任何差异,例如,release:prepare将不起作用,因为它首先检查修改;但在使用Continuum时,我不知道为什么本地代码和SVN存储库之间会有差异?所以我不知道为什么连续体中的版本:准备目标会面临这个问题。

我的pom示例:

    <build>
      <plugins>
    ...
       <plugin>
          <artifactId>maven-release-plugin</artifactId>
          <configuration>
                <useReleaseProfile>false</useReleaseProfile>
          </configuration>
       </plugin>

    ...     
      </plugins>

    </build>


<scm>
  <connection>scm:cvs:ext:url:/var/cvs:application_name</connection>         <developerConnection>scm:cvs:ext:url:/var/cvs:application_name</developerConnection>
</scm>

.....
</project>

在父 pom 中.xml:

...
    <pluginManagement>

        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.2.2</version>
          <configuration>
            <useReleaseProfile>false</useReleaseProfile>
            <goals>deploy</goals>
            <arguments>-Prelease</arguments>
          </configuration>
        </plugin>
.....

有关信息,到目前为止,项目的构建和发布始终工作正常。

有一个旁路解决方案,解决了我的问题,但我仍然试图了解这个问题的根源。

旁路解决方案

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <version>2.2.2</version>
  <configuration>
    ...
    <checkModificationExcludes>
      <checkModificationExclude>pom.xml</checkModificationExclude>
    </checkModificationExcludes>
  </configuration>
</plugin>

共有3个答案

公良天逸
2023-03-14

对于不想更改<code>pom的每个人。xml命令行选项实现了以下功能:

mvn[…]-DcheckModificationExcludeList=pom.xml、.maven/spy.log

我在hudson / jenkins CI环境中遇到了问题,抱怨< code >中的更改。maven/spy.log

张嘉熙
2023-03-14

从源代码管理中删除项目的<code>目标

拓拔曦
2023-03-14

我可以确认,添加插件或配置它以排除< code>pom.xml检查确实有效:

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-release-plugin</artifactId>
  <configuration>
    <checkModificationExcludes>
        <checkModificationExclude>pom.xml</checkModificationExclude>
    </checkModificationExcludes>
  </configuration>
</plugin>
 类似资料:
  • 本章介绍本书所需要的一些准备工作. 请确保把各部分的准备工作完成 知识点 设置的Eclipse的编码 下载,安装,配置mysql数据库 配置Eclipse中Server环境

  • 我工作场所的配置管理团队要求人工制品的4位版本号——比如,1.2.3.4——用于发布的人工制品,1.2.3.5-SNAPSHOT用于开发pom 除此之外,我们的版本管理系统(clearcase)具有预标签触发器,它强制执行标签/标签的特定命名约定。 因此,如果pom版本是1.2.3.4-SNAPSHOT,而artifactId是shopcart,那么根据标签命名要求,标签名称应该是: XXX\u

  • 我正在尝试使用maven进行发布管理。在我的pom中,我定义了我的scm连接。 当我尝试运行目标发布:准备时,我收到以下错误: 无法在project myproject上执行目标org.apache.maven.plugins:maven release plugin:2.0:prepare(默认cli):找不到SCM URL中提供的提供程序:没有这样的提供程序:“svn-ssh”- 我可以使用t

  • 获取系统版本信息 参数说明 字段 类型 必须? 说明 deviceId String 是 设备Id completion 是 结果回调 接口定义 Swift: RokidMobileSDK.device.getVersion(deviceId: String, completion: @escaping (_ error: Error?, _ versionInfo: RKDeviceVersio

  • 获取系统版本信息 接口说明 获取当前设备的系统版本信息 返回的消息将以Event的形式向上抛。 返回值 只表示 获取系统版本信息是否已经发送成功。 参数说明 字段 类型 必须? 说明 deviceId String 是 设备ID 示例代码: Kotlin RokidMobileSDK.device.getVersionInfo(deviceId, object : IChannelPublishC

  • 两天前,我在Play Market上发布了我的android应用程序。今天我更新了这个应用程序。我在构建中更改了版本代码。渐变从1到2,版本名称从“1.1”到“1.1.1”。当我把apk文件上传到Google Play控制台时,浏览器崩溃了。当我再次上传apk文件时,出现以下错误: 然而,“APKs to diactivate”块中只有一个版本的应用程序,而“APKs to add”块中没有APK