我正试图将我的文物从Jenkins推向Nexus。当我从Jenkins部署到Nexus时,我收到以下错误:
Jenkins控制台输出中的错误消息:
15:59:06 [ERROR]无法执行目标org.apache.maven.plugins:maven-deploy-plugin:2.8.2:在项目sbx-java-webapp上部署(默认部署):部署失败工件/元数据:无法使用可用的连接器工厂访问类型default:BasicRepositoryConnectorFactory:无法使用已注册的传输工具进行访问:WagonTransporterFactory:java.util.NoSuchElementException
15:59:06 [ERROR]角色:org.apache.maven.wagon.Wagon
15:59:06 [ERROR] roleHint:“http
15:59:06 [ERROR] - > [帮助1]
15:59:06 [ERROR]
15:59:06 [ERROR]要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。
15:59:06 [ERROR]使用-X开关重新运行Maven以启用完整的调试日志记录。
15:59:06 [ERROR]
15:59:06 [ERROR]有关错误和可能的解决方案的更多信息,请阅读以下文章:
15:59:06 [ERROR] [帮助1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
我尝试了几种方法来完成这项工作。但是当我在我的Windows机器中使用maven部署目标时,它正在将我的工件部署到同一个Nexus存储库而没有任何失败。但是来自Jenkins,我收到了这个错误。在这两个环境中,我使用的pom.xml和settings.xml是相同的。我已尝试使用不同的maven版本以及jenkins解决此问题,但没有帮助。
我已经尝试在CLI中提及wagonProvider以及settings.xml,并且我尝试在构建中使用wagonProviders的扩展,我甚至使用extensions.xml并将其包含在maven版本3.0.5中的描述符中,其中WagonTransporterFactory可用,但他们都没有帮助我。我也尝试重新安装和重新配置Jenkins,但这对我没有帮助。
如果我们能够解决这个问题,那将会是很有帮助的。感谢。
答案 0 :(得分:1)
哦......我解决了问题。另一个教我一个小错误的例子可能会导致更大的问题。
问题发生在我将我的Nexus存储库URL作为系统变量传递给jenkins for maven deploy命令,如下所示:
<强> nexus_rel_repo = “$ {NEXUS_REPO_URL}”强>
其中 NEXUS_REPO_URL 已经是我在Jenkins中分配的字符串参数。并且 nexus_rel_repo 是我的系统变量,当我将Nexus存储库URL(已经是字符串参数)分配给nexus_rel_repo时,您可以看到我正在使用双引号。这些额外的双引号的出现扰乱了连接。
感谢所有研究过这个问题并且已经对此进行过一些研究的人。