搭建nexus時項目依賴了很多快照版本,手頭又沒有快照版本的歷史代碼。百度搜索一番後發現可以使用 mvn deploy直接上傳到快照庫
上傳jar命令:
mvn deploy:deploy-file "-DgroupId=com.json" "-DartifactId=json" "-Dversion=1.0.1-SNAPSHOT" "-Dpackaging=jar" "-Dfile=E:\opt\.m2\repository\com\json\1.0.1-SNAPSHOT\json-1.0.1-SNAPSHOT.jar" "-Durl=http://admin:[email protected]:8081/repository/maven-snapshots/" "-DpomFile=E:\opt\.m2\repository\com\json\1.0.1-SNAPSHOT\json-1.0.1-SNAPSHOT.pom"
DpomFile 代表上傳該SNAPSHOT版本jar的pom文件。如果pom文件裏沒有別的依賴 可以不傳,nexus會自動生成pom。
上傳pom命令:
mvn deploy:deploy-file "-DgroupId=com.json" "-DartifactId=json" "-Dversion=1.0-SNAPSHOT" "-Dpackaging=pom" "-Dfile=E:\opt\.m2\repository\com\json\1.0.1-SNAPSHOT\json-1.0.1-SNAPSHOT.pom" "-Durl=http://admin:[email protected]:8081/repository/maven-snapshots/"
windows下上傳一定要加上"" ,要不會報no pom的問題。
由於maven不會自動下載SNAPSHOT依賴
故修改maven settings.xml文件添加如下:
<profile>
<id>allow-snapshots</id>
<activation><activeByDefault>true</activeByDefault></activation>
<repositories>
<repository>
<id>snapshots-repo</id>
<url>http://10.6.6.5:8081/repository/maven-public/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
</profile>
項目太多就不在項目里加了。也可以在項目pom中指定相應的配置。
私服鏡像配置
<mirror>
<id>tazyy</id>
<mirrorOf>*</mirrorOf>
<name>tazyy</name>
<url>http://10.6.6.5:8081/repository/maven-public/</url>
</mirror>
如果是release版的jar直接使用nexus上傳即可。需要注意如果pom有依賴一定要先上傳pom,再上傳jar