问题标签 [maven-scm-plugin]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
24 浏览

maven-2 - scm 插件在哪里存储凭据

如您所见,我没有 svn 凭据,我仍然可以签出项目。更多我认为maven将所有这些凭据存储在缓存中的某个位置,因为它没有将我的基本配置作为“checkoutDirectory”。任何人都可以请帮助如何清理缓存...或者我错过了一些东西:(

0 投票
1 回答
2675 浏览

jenkins - Jenkins 如何为结帐拉取操作传递用户名和密码凭据

我有 Jenkins / Mercurial 最新版本。机器是 Red Hat Linux 6.6。

我在 Jenkins 中使用 Release 插件。Maven 插件(maven-scm-plugin、maven-version-plugin 和 maven-enforcer-plugin)用于在项目上进行发布过程。所有这些版本都使用最新的可用版本,并且配置设置正确。

在 Jenkins 工作中,我正在检查位于 RhodeCode (Mercurial hg) 后面的项目的源代码。 在此处输入图像描述

输出显示如下:

正如你在上面看到的,因为我们在 Mercurial DVCS 工具中指定了一个用户来执行读取/签出操作,所以 Jenkins 在启动 hg 命令时传递了一堆参数,即

--config auth.jenkins.prefix=* --config ******** --config ******** --config "auth.jenkins.schemes=http https"

当我使用 Maven SCM 插件及其目标时,我正在尝试找出如何发送相同的内容。

scm:checkin
scm:tag
等在调用时启动底层版本控制命令(在我的情况下,hg 分支、hg 传出、hg 推送命令)。

目前,上述 hg 命令失败是因为用户没有包含用户名密码变量集的~/.hgrc文件,或者用户没有对目标RhodeCode /Mercurial 存储库的“写入”访问权限。

  • 我尝试配置 ~/.hgrc 文件(根据 Mercurial 文档),如果您在此文件中指定的用户名对目标源代码存储库/项目具有有效的 WRITE 访问权限,则一切正常,则不会出现上述错误消息。

  • 如果我在构建机器上安装/配置密钥环和 mercurial_keyring 扩展/插件(根据在线 mercurial 密钥环文档很容易),这也可以解决。

我想知道的是
我如何将--config xxxxx参数传递给当Maven SCM 插件启动scm:checkin / scm:tag目标时调用的hg命令最终调用hg命令(hg传出,hg push)/所有 hg 命令而不设置 ~/.hgrc 并安装 mercurial_keyring?

0 投票
1 回答
1504 浏览

git - 将 maven-scm-plugin 与 git 一起使用,而不以明文形式存储密码

我需要使用 maven-scm-plugin 导出/签出(默认分支)github 上的存储库。如果我在某处硬编码用户名/密码,我可以让它工作,但我不能让它使用 ssh 密钥或本地文件系统密码管理器。

在命令提示符下,我可以执行“git clone git@github.com:org/repo”或“git clone https://github.com/org/repo ”,它会完成而无需我手动重新输入用户名/密码详细信息。

在我的插件中,我可以将 connectionUrl 设置为 scm:git: https://github.com/org/repo并且我可以传递“-Dusername=foo -Dpassword=bar”。但是,我必须在某个地方拥有用户名/密码(foo/bar)在某处的纯文本中。

我已经看到了将它放在 setting.xml 中将它们作为 args 传递,并将它们放在 pom 文件中的建议。而且我找到了支持 ssh 连接的证据。但是,我找不到 ssh 连接或 https 连接的实际用途,其中您在某处没有纯文本密码。有什么建议吗?

我得到了以下工作(如果我通过 -Dusername= -Dpassword=):

0 投票
1 回答
1123 浏览

git - Maven 发布插件在 git push 错误时显示明文密码

我在跑

并查看输出中的行:

但如果由于某种原因git push失败(例如我输入密码错误),那么我会在日志中看到

所以我看到了 PLAINTEXT 密码。当我在 Teamcity 上使用此步骤时,如果构建失败,当其他人可以看到我的密码时,它会导致安全问题。我在 Linux 和 Windows 机器上都试过了。

我使用 maven-release-plugin 版本 2.5.3。

有人知道如何解决吗?

0 投票
0 回答
1831 浏览

maven - 使用 Maven scm:checkin 提交对模块项目的更改

我有一个多模块 POM 文件:

每个模块本身都是一个具有自己 POM 的 Maven 项目。在这些 POM 中的每一个中,我都有这样指定的scm标签developerConnection

我的目标是运行以下 Maven 目标/选项:

我的预期结果是:

  1. 每个模块的 POM 的父级都更新为最新发布的版本。
  2. 对每个 POM 的更改将签入到模块的 POM 中指定的 SVN 路径中。例如project1POM 使用路径签入,使用project1 <scm>/<developerConnection>路径project2签入project2等。

实际结果:

  1. 每个模块的 POM 的父级更新到最新发布的版本。这按预期工作。
  2. 只有多模块 POM 被签入到 SVN,没有一个模块 POM 被签入。这就是问题所在。

有没有办法实现上述预期结果,或者这是 SCM 插件根本没有设计做的事情?如果可能的话,我将如何修改我所拥有的以获得我想要的结果?

注意:我不能更改项目结构 - 我不能将模块放在父项目中,它们必须保持独立。

不确定它是否相关,但我使用的是 Maven 3.3.9。

0 投票
1 回答
1095 浏览

java - Maven scm 添加到子模块的存储库名称

我有一个java应用程序。它是使用 maven 构建的,它有父模块和子模块。

当应用程序构建成功时,我需要将提交版本号推送到 git。

这是我的POM:

父 pom.xml

子服务器/pom.xml

Maven日志

为什么 maven-scm-plugin 推入 git pushgit@10.72.0.99:project/service.git/server master:master

当正确的存储库git@10.72.0.99:project/service.git

如何修复此功能?

0 投票
1 回答
1055 浏览

java - 在 maven-scm-publish-plugin 中使用备用 scm 提供程序

我想使用 Maven 从远程 SVN 更新本地项目(无需安装 SVN 命令)我正在尝试在 maven-scm-publish-plugin 中使用备用 scm 提供程序,示例插件配置如下所示:

来源:http ://maven.apache.org/plugins/maven-scm-publish-plugin/various-tips.html

但执行后mvn scm:update它在 Maven 日志中

[信息] --- maven-scm-plugin:1.9.5:update (default-cli) @ testscm ---

[信息] 执行:/bin/sh -c cd /home/stanimir/ProjectSvnTest && svn --non-interactive update /home/stanimir/ProjectSvnTest

和错误:svn not found-我知道..它没有安装在系统上。我想改用svnkit,但是这个插件如何使用javasvn?

0 投票
0 回答
829 浏览

maven - Maven SCM插件,如何设置failOnError = false

如何配置 Maven SCM 插件以在 scm 结帐期间忽略错误?(诸如“权限被拒绝”或其他错误)。我知道<failOnError>false</failOnError>其他插件中的配置属性,但是这个插件没有这样的选项(或者我没有在文档中找到它)。

这是我的 pom.xml 部分:

0 投票
0 回答
484 浏览

maven - 在 Maven 发布期间提交附加文件:如果我们需要先将其添加到版本控制中怎么办?

有没有一种已知的方法可以在 Maven 发布期间提交对附加文件的更改,并在必要时将该文件添加到版本控制中?

我们有一个在构建过程中可能会更改的资源文件,我们希望在 Maven 发布期间提交对该文件的任何更改,以便最准确的版本反映在我们的标签中。

我们可以通过配置 maven-scm-plugin 来检查对我们文件的更改,并添加scm:checkinpreparationGoalsmaven-release-plugin 中来获得大部分方法,如下所示:

这种方法可以很好地处理对现有资源文件的新更改。不幸的是,当我们的构建生成一个尚未添加到版本控制的新资源文件时,它会失败:

虽然我们可以通过添加scm:addto 来解决这种情况,但是当我们的资源文件添加到版本控制时preparationGoals这种方法会中断:

我确信我可以让 Maven 调用一些外部脚本来为我们处理这个问题,但如果可能的话,我宁愿将这个逻辑保留在 Maven 本身中。

0 投票
1 回答
1727 浏览

java - 配置 Maven scm 插件以使用来自 settings.xml 的 serverID

我有一个设置了一些服务器的 settings.xml 文件:

我在这里读到,无法为 scm 插件设置特定服务器,并且您必须在 pom.xml 中添加一个属性

这是我的 pom.xml

我尝试运行 mvn versions:update-parent 并且我的构建失败了

svn: E170001: ' https://xxx:443 Subversion Repository 'xxx'需要验证

这是Maven命令:

我尝试使用未加密的密码,但它也不起作用......

谢谢你的帮助!