尝试使用 REST API 在 sonatype Nexus 中创建存储库
Trying to use REST API to create repositories in sonatype Nexus
我如何通过 REST 创建存储库 API 并希望有人可以帮助我使用 xml 和 curl 脚本。
首先,如果您对如何做这些事情感到好奇,您可以使用我们在 Sonatype 的这篇关于如何学习 Nexus Repository 2 REST 的文章API:http://www.sonatype.org/nexus/2015/01/26/learn-the-nexus-rest-api-automating-sonatype-nexus/
其次,这是我们的一位内部团队成员提出的示例:
这是对 http://localhost:8081/nexus/service/local/repositories 的 POST 请求。你可以像这样使用 curl:
curl -H "Content-Type: application/json" -d @repo.json -u admin:admin123 http://localhost:8081/nexus/service/local/repositories
下面是上面引用的 "repo.json" 文件的一些示例内容,其中显示了如何创建代理 Maven 存储库。请注意,创建其他类型存储库的负载会有所不同,请使用上面的文章找出它们是什么。
{
"data": {
"repoType": "proxy",
"id": "somerepo",
"name": "Some Repo Name",
"browseable": true,
"indexable": true,
"notFoundCacheTTL": 1440,
"artifactMaxAge": -1,
"metadataMaxAge": 1440,
"itemMaxAge": 1440,
"repoPolicy": "RELEASE",
"provider": "maven2",
"providerRole": "org.sonatype.nexus.proxy.repository.Repository",
"downloadRemoteIndexes": true,
"autoBlockActive": true,
"fileTypeValidation": true,
"exposed": true,
"checksumPolicy": "WARN",
"remoteStorage": {
"remoteStorageUrl": "http://someplace.com/repo",
"authentication": null,
"connectionSettings": null
}
}
}
TLDR
对于 Nexus3,使用 example scripts from here to create your desired repository using the Script API.
之一
Sonatype Nexus 3
自版本 2 以来,REST API 经历了(我认为仍在经历)一些改造。
Repositories API
当前的 Repositories API 处于 BETA 阶段,只有一个端点可以列出存储库...所以这行不通。
Script API
Script API(v1,非测试版)允许通过 Groovy 进入底层 Nexus 库。您可以使用此 API 创建和执行脚本来创建存储库。
例如创建 NPM 存储库
创建一个脚本来创建 NPM 存储库,然后执行该脚本。
curl -X POST -u admin:admin123 --header 'Content-Type: application/json' \
http://127.0.0.1:8081/service/rest/v1/script \
-d '{"name":"npm","type":"groovy","content":"repository.createNpmHosted('\''npm-internal'\'');repository.createNpmProxy('\''npmjs-org'\'','\''https://registry.npmjs.org'\'');repository.createNpmGroup('\''npm-all'\'',['\''npmjs-org'\'','\''npm-internal'\''])"}'
curl -X POST -u admin:admin123 --header "Content-Type: text/plain" 'http://127.0.0.1:8081/service/rest/v1/script/npm/run'
推荐阅读:
我如何通过 REST 创建存储库 API 并希望有人可以帮助我使用 xml 和 curl 脚本。
首先,如果您对如何做这些事情感到好奇,您可以使用我们在 Sonatype 的这篇关于如何学习 Nexus Repository 2 REST 的文章API:http://www.sonatype.org/nexus/2015/01/26/learn-the-nexus-rest-api-automating-sonatype-nexus/
其次,这是我们的一位内部团队成员提出的示例:
这是对 http://localhost:8081/nexus/service/local/repositories 的 POST 请求。你可以像这样使用 curl:
curl -H "Content-Type: application/json" -d @repo.json -u admin:admin123 http://localhost:8081/nexus/service/local/repositories
下面是上面引用的 "repo.json" 文件的一些示例内容,其中显示了如何创建代理 Maven 存储库。请注意,创建其他类型存储库的负载会有所不同,请使用上面的文章找出它们是什么。
{
"data": {
"repoType": "proxy",
"id": "somerepo",
"name": "Some Repo Name",
"browseable": true,
"indexable": true,
"notFoundCacheTTL": 1440,
"artifactMaxAge": -1,
"metadataMaxAge": 1440,
"itemMaxAge": 1440,
"repoPolicy": "RELEASE",
"provider": "maven2",
"providerRole": "org.sonatype.nexus.proxy.repository.Repository",
"downloadRemoteIndexes": true,
"autoBlockActive": true,
"fileTypeValidation": true,
"exposed": true,
"checksumPolicy": "WARN",
"remoteStorage": {
"remoteStorageUrl": "http://someplace.com/repo",
"authentication": null,
"connectionSettings": null
}
}
}
TLDR
对于 Nexus3,使用 example scripts from here to create your desired repository using the Script API.
之一Sonatype Nexus 3
自版本 2 以来,REST API 经历了(我认为仍在经历)一些改造。
Repositories API
当前的 Repositories API 处于 BETA 阶段,只有一个端点可以列出存储库...所以这行不通。
Script API
Script API(v1,非测试版)允许通过 Groovy 进入底层 Nexus 库。您可以使用此 API 创建和执行脚本来创建存储库。
例如创建 NPM 存储库
创建一个脚本来创建 NPM 存储库,然后执行该脚本。
curl -X POST -u admin:admin123 --header 'Content-Type: application/json' \
http://127.0.0.1:8081/service/rest/v1/script \
-d '{"name":"npm","type":"groovy","content":"repository.createNpmHosted('\''npm-internal'\'');repository.createNpmProxy('\''npmjs-org'\'','\''https://registry.npmjs.org'\'');repository.createNpmGroup('\''npm-all'\'',['\''npmjs-org'\'','\''npm-internal'\''])"}'
curl -X POST -u admin:admin123 --header "Content-Type: text/plain" 'http://127.0.0.1:8081/service/rest/v1/script/npm/run'
推荐阅读: