解決idea找不到setting.xml文件的問題
對於找不到maven倉庫的setting.xml文件
網上各種說法
但是我在idea裡面找到瞭一個思路介紹給大傢
補充:Maven Settings.xml文件及常見問題總結
Settings.xml 文件
<localRepository>
配置本地倉庫地址,如:
<localRepository>D:\.m2\repository</localRepository>
<servers>
配置私服地址。如果為公共服務器,不需要賬號,密碼,則可不配置。隻要配置<mirror>標簽即可(<mirror>見1.3小節)如:
<server> <id>nexus</id> <username>yanfa</username> <password>yanfa</password> </server>
<mirror>
mirror則相當於一個代理,它會攔截去指定的遠程repository下載構件的請求,然後從自己這裡找出構件回送給客戶端。配置mirror的目的一般是出於網速考慮。
如果配置為*,如下面配置文件所示,則如果這個mirror掛掉,maven將無法訪問任何遠程倉庫,因而將無法下載構件。
配置遠程倉庫地址:
<mirror> <id>nexus</id> <name>Nexus</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <mirrorOf>*</mirrorOf> </mirror>
<repository>
internal repository是指在局域網內部搭建的repository,它跟central repository, jboss repository等的區別僅僅在於其URL是一個內部網址。
配置遠程倉庫信息:
<repository> <id>nexus</id> <name>Nexus Repository</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository>
<pluginRepository>
配置插件信息,如tomcat等插件:
<pluginRepository> <id>nexus</id> <name>Nexus Repository</name> <url>http://localhost:8081/nexus/content/groups/public/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </pluginRepository>
常見問題
Q: Maven 本地倉庫明明有jar包,pom文件還是報錯解決?
A: 解決方法:找到出錯的jar包文件在本地倉庫的位置,刪掉_maven.repositories文件。
原因:更換settings.xml 配置文件後,如果配置的respositoryId中不包含這個私服的repositoryId,maven本不會讓這個本地的jar包,maven就會自動到配置的庫中找到,找不到就會報錯。
Q: 明明已經設置本地倉庫,但maven每次更新時,還是要到網上下載?
A: 本地沒有下載到真正的 jar 包(而是帶有last-updated後綴的文件),隻能再到網上下載。
Q: Maven 應用jar 版本不對,如何解決?
A: 1. 首先查看本地倉庫中的目標jar包版本是否存在。2. 如果存在,查看.pom 文件,知道其坐標, 然後在需要引用的工程的pom.xml文件中添加dependency 引用。 3. 如果不存在, 看私服中是否有改目標版本的文件,有,就下載即可。
優勢
未使用maven管理,每一個項目都要帶一些jar包,增大瞭項目的體積,需要更多的時間部署;同時每個項目之間肯定有一些公用的jar包,如果能夠集中式管理jar,這樣會節省很多的空間。
以上為個人經驗,希望能給大傢一個參考,也希望大傢多多支持WalkonNet。如有錯誤或未考慮完全的地方,望不吝賜教。
推薦閱讀:
- 深入講解Java Maven配置
- Java Maven settings.xml中私有倉庫配置詳解
- maven私服搭建的實現步驟
- Maven倉庫加載順序的實例解析
- 如何將maven源改為國內阿裡雲鏡像