本地倉庫
主要是一種緩存,當你使用遠程倉庫中下載組件后,它下一次會優先從本地進行加載,一般位於USER_HOME/.m2
目錄下,我們自己也可以建立公用的包,把包發布到本地倉庫,自己在其它項目里直接可以用,當然如果希望在任務地方都使用自己的包,需要把它發布到遠程倉庫中。
像nuget,npm一樣maven也是倉庫
- Jar的maven配置
<dependency>
<groupId>javalindday</groupId>
<artifactId>jpaDemo</artifactId>
<version>0.0.1</version>
</dependency>
- 將Jar包安裝到本地倉庫
mvn install:install-file -Dfile=/Users/lind.zhang/github/jpaDemo/build/libs/jpaDemo-0.0.1.jar -DgroupId=javalindday -DartifactId=jpaDemo -Dversion=0.0.1 -Dpackaging=jar
- DgroupId和DartifactId構成了該jar包在pom.xml的坐標, 對應依賴的DgroupId和DartifactId
- Dfile表示需要上傳的jar包的絕對路徑
- Dpackaging 為安裝文件的種類
- 打包的結果
➜ jpaDemo git:(master) ✗mvn install:install-file -Dfile=/Users/lind.zhang/github/jpaDemo/build/libs/jpaDemo-0.0.1.jar -DgroupId=javalindday -DartifactId=japDemo -Dversion=0.0.1 -Dpackaging=jar
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------< org.apache.maven:standalone-pom >-------------------
[INFO] Building Maven Stub Project (No POM) 1
[INFO] --------------------------------[ pom ]---------------------------------
[INFO]
[INFO] --- maven-install-plugin:2.4:install-file (default-cli) @ standalone-pom ---
[INFO] Installing /Users/lind.zhang/github/jpaDemo/build/libs/jpaDemo-0.0.1.jar to /Users/lind.zhang/.m2/repository/javalindday/japDemo/0.0.1/japDemo-0.0.1.jar
[INFO] Installing /var/folders/jg/yyzswj8j6pb5z7mtgyq3vx500000gn/T/mvninstall6617860076838629494.pom to /Users/lind.zhang/.m2/repository/javalindday/japDemo/0.0.1/japDemo-0.0.1.pom
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 0.497 s
[INFO] Finished at: 2018-07-20T16:04:37+08:00
[INFO] ------------------------------------------------------------------------
➜ jpaDemo git:(master) ✗
- 上傳Jar到私有倉庫
mvn deploy:deploy-file -DgroupId=javalindday -DartifactId=jpaDemo -Dversion=0.0.1 -Dpackaging=jar -Dfile=/Users/lind.zhang/github/jpaDemo/build/libs/jpaDemo-0.0.1.jar -Durl=http://ip:port/nexus/content/repositories/thirdparty/ -DrepositoryId=thirdparty
- DgroupId和DartifactId構成了該jar包在pom.xml的坐標, 對應依賴的DgroupId和DartifactId
- Dfile表示需要上傳的jar包的絕對路徑
- Durl私服上倉庫的url精確地址(打開nexus左側repositories菜單,可以看到該路徑)
- DrepositoryId服務器的表示id,在nexus的configuration可以看到
使用本地緩存
從Maven切換到Gradle,原有的幾G的本地緩存庫當然想繼續使用。
如果想使用Maven本地緩存,需要定義:build.gradle 文件下定義
build.gradle
repositories {
mavenLocal()
}
Gradle使用與Maven相同的策略去定位本地Maven緩存的位置。如果在settings.xml中定義了本地Maven倉庫的地址,則使用該地址。
在USER_HOME/.m2下的settings.xml文件中的配置會覆蓋存放在M2_HOME/conf下的settings.xml文件中的配置。
如果沒有settings.xml配置文件,Gradle會使用默認的USER_HOME/.m2/repository地址。