【发布时间】:2019-11-19 08:22:03
【问题描述】:
在 Jenkins groovy 脚本中,我尝试使用以下内容下载依赖项:
@Grab(group='myorg', module='SuiteCreator', version='1.16.1', conf='jar', transitive=false)
import myorg.myorgAPI
我有一个 /home/jenkins/.groovy/grapeConfig.xml 文件,其中包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-settings>
<settings defaultResolver="downloadGrapes"/>
<resolvers>
<chain name="downloadGrapes">
<sftp user="admin" userPassword="pw" host="ivy.myorg.com" name="myrepository" checkmodified="true">
<ivy pattern="/data/ivy/repo/[organisation]/[module]/[branch]/[revision]/ivy-[revision].xml"/>
<artifact pattern="/data/ivy/repo/[organisation]/[module]/[branch]/[revision]/[artifact]-[revision].[ext]"/>
</sftp>
</chain>
</resolvers>
</ivy-settings>
我试图抓取的模块的 ivy-1.16.1.xml:
<?xml version="1.0" encoding="UTF-8"?>
<ivy-module version="1.0">
<info organisation="myorg" module="SuiteCreator" branch="master" revision="1.16.1" status="release" publication="20190417105814"/>
<configurations>
<conf name="jar" description="Distribution jar"/>
</configurations>
<publications>
<artifact name="myorg-suitecreator" type="jar" ext="jar" conf="jar"/>
</publications>
</ivy-module>
所以我只是想抓住神器:myorg-suitecreator-1.16.1.jar。
当我在 Jenkins 中运行我的 groovy 脚本时,我收到以下错误:
2019.07.09 18:06:15 org.codehaus.groovy.control.MultipleCompilationErrorsException: 启动失败: 2019.07.09 18:06:15 转换过程中出现一般错误:抓葡萄时出错——【下载失败: myorg#SuiteCreator#master;1.16.1!SuiteCreator.jar] 2019.07.09 18:06:15 2019.07.09 18:06:15 java.lang.RuntimeException: 抓葡萄时出错——[下载失败:myorg#SuiteCreator#master;1.16.1!SuiteCreator.jar] 2019.07.09 18:06:15 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
从错误看来,Grape 假设 Ivy Artifact Name 与 Module 名称相同。 /ivy-module/publications/artifact/@name 处的 ivy-1.16.1.xml 工件名称被定义为 myorg-suitecreator 但是 Grab 似乎正在尝试下载:SuiteCreator.jar。
grapeConfig.xml 中的工件模式是:
<artifact pattern="/data/ivy/repo/[organisation]/[module]/[branch]/[revision]/[artifact]-[revision].[ext]"/>
所以我要抓取的文件实际上是:/data/ivy/repo/myorg/SuiteCreator/1.16.1/myorg-suitecreator-1.16.1.jar
是否有人对如何使其工作有任何建议(或者 Grab 是否可以从 Ivy 下载具有与模块名称不同的工件名称的工件?)。
【问题讨论】:
标签: jenkins groovy dependency-management ivy grape