尝试使用REST API在sonatype Nexus中创建存储库

Ant*_*ony 4 xml rest curl repository nexus

我如何通过REST API创建存储库,并希望有人可以帮助我使用所用的xml和curl脚本。

Dar*_*ter 6

首先,如果您对如何执行这些操作感到好奇,可以使用 Sonatype 撰写的有关如何学习 Nexus Repository 2 REST API 的文章:http://www.sonatype.org/nexus/2015/01/26 /学习-nexus-rest-api-automating-sonatype-nexus/

其次,这是我们内部团队成员之一提出的一个例子:

这是对http://localhost:8081/nexus/service/local/repositories 的POST 请求。你可以像这样将它与curl一起使用:

curl -H“内容类型: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
        }
    }
}
Run Code Online (Sandbox Code Playgroud)


Nic*_*aly 5

TLDR

对于Nexus3,请使用Script API中的示例脚本之一从此处创建所需的存储库。


Sonatype Nexus 3

自版本2起,REST API进行了(并且我认为仍在进行)一些改进。

储存库API

当前的存储库API位于BETA中,并且只有一个端点可以列出存储库...因此无法使用。

脚本API

脚本API(V1,不BETA),允许窃听到经由底层的Nexus库Groovy的。您可以使用此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'
Run Code Online (Sandbox Code Playgroud)

推荐阅读: