Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/jenkins/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Maven 升级的构建插件将构件部署到存储库_Maven_Jenkins_Jenkins Plugins_Promoted Builds - Fatal编程技术网

Maven 升级的构建插件将构件部署到存储库

Maven 升级的构建插件将构件部署到存储库,maven,jenkins,jenkins-plugins,promoted-builds,Maven,Jenkins,Jenkins Plugins,Promoted Builds,我们有一个Jenkins Maven构建,运行在Windows从机上,在每次提交时运行Maven包。我正在尝试使用升级版插件将升级版部署到nexus发行版存储库 我已经将“升级构建时…”设置为手动批准,将操作设置为“将工件部署到Maven存储库”,将存储库URL设置为“”,将repo id设置为“发布”。 但是,当触发批准时,我们会得到以下堆栈跟踪: [INFO]部署在(id=release,uniqueVersion=true) 部署主要工件artifactid-1.0.2.pom 上传: 错

我们有一个Jenkins Maven构建,运行在Windows从机上,在每次提交时运行Maven包。我正在尝试使用升级版插件将升级版部署到nexus发行版存储库

我已经将“升级构建时…”设置为手动批准,将操作设置为“将工件部署到Maven存储库”,将存储库URL设置为“”,将repo id设置为“发布”。 但是,当触发批准时,我们会得到以下堆栈跟踪:

[INFO]部署在(id=release,uniqueVersion=true) 部署主要工件artifactid-1.0.2.pom 上传: 错误:未能部署项目:无法将项目groupid:artifactid:pom:1.0.2从/传输到发行版():未能传输文件:。返回代码为:401,原因短语:未经授权。 org.apache.maven.artifact.deployer.ArtifactDeploymentException:未能部署项目:无法将项目groupid:artifactid:pom:1.0.2从/传输到发行版():未能传输文件:。返回代码为:401,原因短语:未经授权。 位于org.apache.maven.artifact.deployer.DefaultArtifactDeployer.deploy(DefaultArtifactDeployer.java:143) 在hudson.maven.reporters.MavenArtifactRecord.deploy(MavenArtifactRecord.java:193) 位于hudson.maven.RedeployPublisher.perform(RedeployPublisher.java:176) 在hudson.plugins.promoted_builds.Promotion$RunnerImpl.build(Promotion.java:282) 在hudson.plugins.promoted\u builds.Promotion$RunnerImpl.doRun(Promotion.java:224) 位于hudson.model.AbstractBuild$AbstractBuildExecution.run(AbstractBuild.java:533) 位于hudson.model.Run.execute(Run.java:1740) 在hudson.model.Run.Run(Run.java:1678) 在hudson.plugins.promoted\u builds.Promotion.run(Promotion.java:174)上 在hudson.model.ResourceController.execute(ResourceController.java:89) 运行(Executor.java:240)

如果我更改升级操作以触发maven deploy,构建将重新运行,部署目标将按预期工作,如果我添加git发布服务器,身份验证也会失败。如果由运行Jenkins的用户在本地执行,则两个操作都会成功


升级版插件如何确定部署的身份验证详细信息?

要执行需要使用Maven进行身份验证的部署,您需要使用插件中的正确信息配置服务器。因此,使用以下内容修改(或创建)您的用户设置(在
${user.home}/.m2/settings.xml
下):

<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
                      https://maven.apache.org/xsd/settings-1.0.0.xsd">
  ...
  <servers>
    <server>
      <id>releases</id>
      <username>my_login</username>
      <password>my_password</password>
    </server>
  </servers>
  ...
</settings>

...
释放
我的注册
我的密码
...
这将使用给定的用户名和密码定义名为
releases
的服务器配置。如果需要,可以使用密码短语或私钥

然后,您需要确保Jenkins正确读取您的Maven设置文件。在Jenkins 2.8下,您可以导航到“Jenkins>全局工具配置”

这两个选项指向先前修改过的全局Maven设置和用户设置

最后,您需要确保Jenkins内部配置的构建操作正在查找配置的服务器。在“将工件部署到Maven repository”操作中,写入部署URL,“存储库ID”应该是在
设置.xml
中配置的服务器的
,在本例中为
版本

我也有同样的问题:(如何部署到需要身份验证的存储库?