如何在idea中設(shè)置該項目獨立的本地倉庫和maven設(shè)置
1、在你想存放倉庫(repository)的目錄下創(chuàng)建repository(倉庫)文件夾,和setting.xml設(shè)置文件夾。我這次為了方便知道這個倉庫是獨屬于這個項目的,所以就建在了該項目的目錄下。
創(chuàng)建方式如下圖:

2、打開setting.xml文件,配置maven信息。

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
? ? xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
? ? xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
? ? <pluginGroups />
? ? <proxies />
? ? <servers />
? ? <localRepository>D:\ideaProjects\svn\test_spring_cloud\repository</localRepository>
? ? <mirrors>
? ? ? ? <mirror>
? ? ? ? ? ? <id>alimaven</id>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? ? ? <name>aliyun maven</name>
? ? ? ? ? ? <url>http://maven.aliyun.com/nexus/content/repositories/central/</url>
? ? ? ? </mirror>
? ? ? ? <mirror>
? ? ? ? ? ? <id>alimaven</id>
? ? ? ? ? ? <name>aliyun maven</name>
? ? ? ? ? ? <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? </mirror>
? ? ? ? <mirror>
? ? ? ? ? ? <id>central</id>
? ? ? ? ? ? <name>Maven Repository Switchboard</name>
? ? ? ? ? ? <url>http://repo1.maven.org/maven2/</url>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? </mirror>
? ? ? ? <mirror>
? ? ? ? ? ? <id>repo2</id>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? ? ? <name>Human Readable Name for this Mirror.</name>
? ? ? ? ? ? <url>http://repo2.maven.org/maven2/</url>
? ? ? ? </mirror>
? ? ? ? <mirror>
? ? ? ? ? ? <id>ibiblio</id>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? ? ? <name>Human Readable Name for this Mirror.</name>
? ? ? ? ? ? <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url>
? ? ? ? </mirror>
? ? ? ? <mirror>
? ? ? ? ? ? <id>jboss-public-repository-group</id>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? ? ? <name>JBoss Public Repository Group</name>
? ? ? ? ? ? <url>http://repository.jboss.org/nexus/content/groups/public</url>
? ? ? ? </mirror>
? ? ? ? <mirror>
? ? ? ? ? ? <id>google-maven-central</id>
? ? ? ? ? ? <name>Google Maven Central</name>
? ? ? ? ? ? <url>https://maven-central.storage.googleapis.com
? ? ? ? ? ? </url>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? </mirror>
? ? ? ? <!-- ?????????б -->
<!--
? ? ? ? <mirror>
? ? ? ? ? ? <id>maven.net.cn</id>
? ? ? ? ? ? <name>oneof the central mirrors in china</name>
? ? ? ? ? ? <url>http://maven.net.cn/content/groups/public/</url>
? ? ? ? ? ? <mirrorOf>central</mirrorOf>
? ? ? ? </mirror>
-->
<mirror>
<id>nexus-bailing</id>
<mirrorOf>central</mirrorOf>
<name>nexus-bailing repository</name>
<url>http://10.67.78.31:8081/repository/bailingRep-group/</url>
? ? </mirror>
? ? </mirrors>
</settings>
這里面配置的有比較全的或內(nèi)鏡像,可以按照喜好選取(最后一個是公司的鏡像)
其中第一個配置localRepository標(biāo)簽時需要修改的,這里面的目錄要修改成repository倉庫的目錄。這樣就把配置文件和倉庫地址映射起來了。
3、配置idea,使項目、maven和setting文件映射起來
打開idea按下快捷鍵ctrl+alt+s打開設(shè)置面板
搜索maven
按照圖示配置:

其中第一行是maven程序安裝的地址
第二行是我們需要映射的setting文件地址,第三行會自動換成setting同級目錄下的repository文件,所以就不用管了。
這樣這個項目就通過idea進(jìn)行了maven,setting,倉庫直接獨立的映射了。該項目以后就會根據(jù)這個配置和倉庫運行。
maven默認(rèn)倉庫和自己設(shè)置的獨立倉庫的設(shè)置
當(dāng)我們在需要手動下載jar包并需要導(dǎo)入本地倉庫時,就要用到maven默認(rèn)倉庫,因為導(dǎo)入的jar包只會進(jìn)入默認(rèn)倉庫。導(dǎo)入的方式下面將。
那么如何設(shè)置現(xiàn)在項目使用的maven倉庫時默認(rèn)的倉庫呢?
首先進(jìn)入maven的安裝目錄下的conf文件夾下,如圖:

在這里面修改setting文件中的倉庫地址,就是把默認(rèn)的倉庫地址給修改了,以后在進(jìn)行手動導(dǎo)入jar包進(jìn)入目標(biāo)倉庫,就要先把默認(rèn)倉庫修改為目標(biāo)倉庫地址。
手動下載jar包并導(dǎo)入進(jìn)本地倉庫
1、先根據(jù)上文設(shè)置好默認(rèn)倉庫
2、根據(jù)idea的maven提示起沖突的詳細(xì)jar包名記錄下來
3、去網(wǎng)上手動下載該jar包
4、啟用管理員角色運行cmd
5、輸入命令
mvn install:install-file
-Dfile=D:\jarTest\spring-cloud-netflix-eureka-server-1.3.0.RC1.jar
-DgroupId=org.springframework.cloud
-DartifactId=spring-cloud-starter-eureka-server
-Dversion=1.3.0.RC1
-Dpackaging=jar
-DgeneratePom=true
注意:
在cmd中輸入時每行的代碼在復(fù)制進(jìn)去時要有空格(每行直接的代碼拼接時有幾個空格就行)
其中
-Dfile 為你下載好的jar包所存在的路徑
-DgroupId 為groupId
-DartifactId 為artifactId
-Dversion 為版本號
-Dpackaging 為導(dǎo)入格式,是jar包就寫jar
6、如果cmd運行后表示成功,可以去倉庫看一下,如果導(dǎo)入進(jìn)去了就是成功了。
7、進(jìn)入idea看jar包還有沒有報錯(有時需要重啟一下idea才會消失)
進(jìn)階
項目依賴
如果使用的項目是有依賴關(guān)系的,比如manager管理項目和sysUser用戶端項目使用公用的common項目提供的service。
那么首先你要在pom文件中引入common的jar包,表示依賴common項目。
在你的程序能成功跑通之后,要編譯打包上線。你在package commom項目后,再去package manager項目時原本信心滿滿的以為要成功。但是會發(fā)現(xiàn)package manager竟然會報錯,而且你的項目時正常的。這時候你就會比較無語了。
因為你package manager項目時是使用pom的jar包引入依賴的,它肯定回去尋找maven倉庫中的commom jar包,而你并沒有把common項目打入maven倉庫,只是package在idea上顯示了jar包。所以它并找不到這個commom項目。但是程序跑起來是會動態(tài)編譯所有子項目的,就不去尋找maven倉庫的jar包了,所以程序可以跑起來,但是單獨打包會報錯。
那么如何打包manager呢?首先你要將最新的commom項目打入maven倉庫。maven也提供了簡便的命令,就是install。install比packge更高級,它在打包好項目后還要安裝項目,也就是打入maven倉庫。所以要現(xiàn)在packge manager之前install它所依賴的common項目。