2017-09-27 50 views
0

我有一個Jenkins作業,其中包含3個參數:ARTIFACT_ID,GROUP_ID和APP_VERSION。我想使用這3個參數從Nexus下載任何特定的jar文件。如何使用Jenkins從nexus獲取jar文件?

請注意,Nexus URL在Jenkins配置中提供,因此它會自動從哪裏查找。

你有一個想法如何做到這一點!

例如,對於python應用程序,我使用pip download --no-deps ARTIFACT_ID==APP_VERSION,它工作正常。

+0

的Nexus 3具有用於支撐的PyPI? – khmarbaise

回答

1

您可以使用使用curl和xmllint的shell腳本來訪問Nexus api並下載工件。

在這裏的示例我如何檢索來自的Nexus工件:

NEXUS_BASE_URL=https://nexus.example.com 
REPOSITORY="reponame" 
GROUP_ID="groupid" 
ARTIFACT_ID="artifact_id" 
LOCAL_FILE="destination.jar" 

NEXUS_RESOLVE_URL="${NEXUS_BASE_URL}artifact/maven/resolve?g=${GROUP_ID}a=${ARTIFACT_ID}&r=${REPOSITORY}&v=${VERSION}" 
REPOSITORY_LOCAL_PATH=`curl -s "${NEXUS_RESOLVE_URL}" | xmllint --xpath "//artifact-resolution/data/repositoryPath/text()" -` 
ARTIFACT_DOWNLOAD_URL="${NEXUS_BASE_URL}repositories/${REPOSITORY}/content${REPOSITORY_LOCAL_PATH}" 
curl -o "${LOCAL_FILE}" "${ARTIFACT_DOWNLOAD_URL}" 

有關解決atrifacts的更多信息可以在關係API參考中找到 https://repository.sonatype.org/nexus-restlet1x-plugin/default/docs/path__artifact_maven_resolve.html