解決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。如有錯誤或未考慮完全的地方,望不吝賜教。

推薦閱讀: