日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Sonatype Nexus高级配置

發布時間:2025/3/16 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Sonatype Nexus高级配置 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Sonatype Nexus的安裝配置參見:CentOS系統中安裝Nexus并導入已有的構件庫。Nexus內置了Jetty容器,${NEXUS_HOME}/bin/jsw目錄下包含了各個操作系統的啟動腳本。當然,如果你不喜歡內置的Jetty容器,也可以下載Nexus的war包,部署在tomcat等容器中。

安裝部署后,比較重要的是能夠對其進行深入的管理和配置,本文將介紹一些關于Sonatype Nexus的高級配置技巧,方便您進行配置管理。

1、使用Maven上傳組件注意事項

  • host類型的倉庫才允許上傳組件
  • 倉庫需要開啟允許上傳功能,配置選項中的Deployment Policy選擇“Allow Redeploy”,見下圖
  • Nexus用戶必須具有“Artifact Upload”的權限,Nexus內置了一些角色,比如“Nexus Deployment Role”,就可以上傳組件
  • Maven主配置文件中需要配置用戶信息及上傳的倉庫信息,配置示例如下:
  • <server><id>thirdparty</id><username>deployment</username><password>password</password> </server>

2、修改監聽端口

默認情況下,Nexus監聽端口8081。可以通過以下方法更改這個端口。

  • 停止Nexus
  • 編輯${NEXUS_HOME}/conf/plexus.properties文件,修改applicationPort的值
  • 重啟Nexus。

3、使Nexus支持其它格式的包

Nexus默認支持jar、war、pom、ejb、ear、rar、par等類型的包,如果希望能添加一些其它類型的包,可以配置如下:

在${nexus-work}/conf/packaging2extension-mapping.properties配置文件中增加配置:

my-custom-packaging=myextension

如果該配置文件不存在則手動創建該文件。

4、更新倉庫索引

1)強制更新索引

nexus索引經常會出現與遠程倉庫索引不一致的情況,導致某些包不能正常下載,可以強制更新倉庫索引,保持索引同步:

  • 以管理員身份登錄
  • 右鍵點擊倉庫,選擇Expire Cache

    

  • 右鍵點擊倉庫,選擇Update Index

    

2)定時更新索引

  • 以管理員身份登錄
  • 左側導航欄選擇Administration->Scheduled Tasks

    

  • 點擊add添加一個計劃任務

    

  • 任務類型選擇:Update Repositories Index,Repository/Group選擇要更新的倉庫,Recurrence選擇計劃任務的周期類型

5、調試組件下載過程

如果Nexus本地索引中包含組件,但是卻不能下載,可能的原因如下:

  • 包含組件的組件庫不在group類型的組件庫中
  • 路由規則封鎖了組件的下載

Nexus提供了可以調試組件下載過程的方法,在組件的下載全路徑后面增加參數“?describe”,示例如下:

http://192.168.120.202:8081/nexus/content/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom?describe

http://localhost:8081/nexus/content/groups/public/foo/bar/1.0/bar-1.0.jar?describe

Nexus將會以json的形式返回調試的輸出結果,結果主要包括:

  • 組件的地址
  • 組件是否可以找到以及原因
  • 如果能找到組件,統計查找組件的過程

示例返回結果如下:

{"data":{"requestUrl":"http://localhost:8081/nexus/content/groups/public/test/project/1.0/project-1.0.jar?describe","processingTimeMillis":471,"request":{"requestUrl":"http://localhost:8081/nexus/content/groups/public/test/project/1.0/project-1.0.jar?describe","requestPath":"/test/project/1.0/project-1.0.jar","requestContext":["request.received.timestamp=1276286536595","request.address=0:0:0:0:0:0:0:1%0","request.remoteOnly=false","request.url=http://localhost:8081/nexus/content/groups/public/test/project/1.0/project-1.0.jar?describe","request.localOnly=false","request.appRootUrl=http://localhost:8081/nexus"]},"response":{"responseType":"NOT_FOUND","processedRepositoriesList":["public","snapshots","thirdparty","central","java.net-m2","java.net-m1-m2","google","apache-snapshots","codehaus-snapshots"],"appliedMappings":["public repository applied [11b647d6117038d8=[type=EXCLUSION, groupId=public, patterns=[.*/project/.*], mappedRepositories=[releases]]]"]}}}

注意查看其中的response節點,如上例中的"responseType":"NOT_FOUND"表示未找到組件,通過該方法可以詳細排查組件不能下載的原因。

再提供一個pom類型的包“mojo-parent-30.pom”的調試示例

{"data": {"requestUrl": "http://192.168.120.202:8081/nexus/content/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom?describe", "processingTimeMillis": 1322, "request": {"requestUrl": "http://192.168.120.202:8081/nexus/content/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom?describe", "requestPath": "/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "requestContext": ["request.remoteOnly=false", "request.localOnly=true"]}, "response": {"responseType": "FILE", "responseActualClass": "org.sonatype.nexus.proxy.item.DefaultStorageFileItem", "responsePath": "/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "responseUid": "central:/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "originatingRepositoryId": "central", "originatingRepositoryName": "Central", "originatingRepositoryMainFacet": "org.sonatype.nexus.proxy.maven.MavenProxyRepository", "processedRepositoriesList": [ ], "properties": ["created=1333560570000", "modified=1333560570000", "lastRequested=1375255131976", "remoteChecked=1375255131556", "remoteUrl=http://repo1.maven.org/maven2/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "storedLocally=1375255131556", "isExpired=false", "readable=true", "writable=true", "virtual=false"], "attributes": ["digest.md5=61a1f7765d45a51a6a7bb03bf410588f", "digest.sha1=be742febdaa3cc7a971dacdf8cdc7ebd94b5765b", "remote.sha1=be742febdaa3cc7a971dacdf8cdc7ebd94b5765b", "request.address=192.168.120.121", "request.user=anonymous", "storageItem-checkedRemotely=1375255131556", "storageItem-created=1333560570000", "storageItem-expired=false", "storageItem-generation=2", "storageItem-lastRequested=1375255131976", "storageItem-length=26627", "storageItem-modified=1333560570000", "storageItem-path=/groups/public/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "storageItem-readable=true", "storageItem-remoteUrl=http://repo1.maven.org/maven2/org/codehaus/mojo/mojo-parent/30/mojo-parent-30.pom", "storageItem-repositoryId=central", "storageItem-storedLocally=1375255131556", "storageItem-writable=true"]}}} 新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!

總結

以上是生活随笔為你收集整理的Sonatype Nexus高级配置的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。