我正在尝试复制引用here的模块和依赖项数据。目前,当我们从Jenkins向Artifactory部署工件时,没有提供依赖项和模块信息。
我们的项目有一个已定义的pom.xml,但下面演示的信息都没有填充。 Jenkins如何获取此依赖关系信息以发送给Artifactory?我们正在使用Artifactory Pro。
答案 0 :(得分:2)
为了在Artifactory中包含此信息,您应该使用Jenkins Artifactory plugin(问题标签表明您使用的是Jenkins),以便将构建结果部署到Artifactory中。
该集成适用于Gradle,Maven,Ivy和freestyle构建工作
使用插件将构建结果部署到Artifactory时,插件将在部署结束时向Artifactory(通过REST)发送BuildInfo数据对象。 BuildInfo是一个结构化的JSON对象,包含有关构建环境,工件和依赖项的所有数据。插件在构建过程中收集此信息,并反映实际使用/完成的内容(这不是基于构建的静态分析)。使用各种类型的构建信息提取器(按照构建技术)收集信息,例如,在Maven作业的情况下,通过安装Maven execution listener从Maven收集信息。
对于自由式工作,支持generic builds。如果您的自由式作业正在执行Maven构建,您也可以使用Maven Artifactory Plugin来收集和部署构建信息。
数据的JSON表示看起来像这样(但有更多信息):
{
"version" : "1.0.1",
"name" : "build-name",
"number" : "100",
"type" : "MAVEN",
"buildAgent" : {
"name" : "Maven",
"version" : "3.0.5"
},
"agent" : {
"name" : "Jenkins",
"version" : "1.534"
},
"modules" : [ {
"id" : "org.foo:bar:1.0.0-SNAPSHOT",
"artifacts" : [ {
"type" : "jar",
"sha1" : "b790a0659bf001a64ee2ca88590e4bc6e0818f4b",
"md5" : "0879ee3509f623c58a40a9db30df8090",
"name" : "bar-1.0.0-SNAPSHOT.jar"
},],
"dependencies" : [ {
"type" : "jar",
"sha1" : "686ef3410bcf4ab8ce7fd0b899e832aaba5facf7",
"md5" : "b45be74134796c89db7126083129532f",
"id" : "commons-beanutils:commons-beanutils:1.8.3",
"scopes" : [ "provided" ]
}]
}
}
使用Artifactory的OSS版本时,Build Integration包括Generic BuildInfo View以及使用Artifactory的REST APIs遍历和查看构建信息的功能。模块工件和依赖关系视图,构建存储库视图以及导出和操作构建项目的能力需要Pro版本。
要使用Jenkins Artifactory插件,请按照提供的说明here。