簡體   English   中英

嘗試使用 REST API 在 sonatype Nexus 中創建存儲庫

[英]Trying to use REST API to create repositories in sonatype Nexus

我如何通過 REST API 創建存儲庫,並希望有人可以幫助我使用 xml 和 curl 腳本。

TLDR

對於 Nexus3,請使用此處示例腳本之一使用Script API創建所需的存儲庫。


Sonatype Nexus 3

自第 2 版以來,REST API 經歷了(我認為仍在經歷)一些改造。

存儲庫 API

當前的Repositories API處於 BETA 階段,並且只有一個端點來列出存儲庫……所以這行不通。

腳本API

Script API (v1,不是 BETA)允許通過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'

推薦閱讀:

首先,如果你對如何做這些事情感到好奇,你可以使用我們在 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
        }
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM