maven專案常見問題及解決
阿新 • • 發佈:2019-01-08
1.針對多模組工程,多個jar還有war,如何實現只發jar,不發war
解決方案:可以在專案根目錄直接執行mvn deploy進行釋出,也可以通過切換到子模組目錄下執行mvn deploy,根據自身情況。
只發jar,不發war可以通過在war模組的pom.xml中增加下面程式碼來實現:
<
plugin
>
<
groupId
>org.apache.maven.plugins</
groupId
>
<
artifactId
>maven-deploy-plugin</
artifactId
>
<
version
>2.7</
version
>
<
configuration
>
<
skip
>true</
skip
>
</
configuration
>
</
plugin
>
前公司是通過在supom中設定的:)2.無需修改pom.xml中的版本實現釋出的靈活性------maven會判斷版本後面是否帶了-SNAPSHOT,如果帶了就釋出到snapshots倉庫,否則釋出到release倉庫。
實現方案:修改pom.xml檔案說明:通過佔位符${project.release.version}來控制需要釋出的版本,用命令mvn deploy -P product,釋出my-test的1.0版本到releases庫。如果使用命令mvn deploy,則預設使用 1.0-SNAPSHOT版本號,將釋出my-test的1.0-SNAPSHOT版本到snapshots庫。<groupId>com.test</groupId> <artifactId>my-test</artifactId> <packaging>jar</packaging> <version>${project.release.version}</version> <properties> <java.version>1.8</java.version> <project.release.version>1.0-SNAPSHOT</project.release.version> </properties> <profiles> <profile> <id>product</id> <properties> <project.release.version>1.0</project.release.version> </properties> </profile> </profiles>
3.release版同一版本重複部署問題: 預設重複部署的話是會報錯的,錯誤碼400,如果想不報錯,可以通過修改部署策略(Deployment pollcy)來實現,,預設是(Disable redeploy),要想重複提交不報錯,可以設定為(Allow redeploy),此時如果是重複上傳會skip. 4.nexus 3.X上傳第三方包
nexus oss 3.*不能像2.*可以通過登入web介面進行jar包的上傳操作,可以通過下面的方式來上傳第三方jar包:
。通過傳統方式mvn deploy來上傳;(缺點就是如果是要上傳到第三方庫或用來存放安卓,ios的構建產物的話需要額外安裝配置maven,如pom.xml與setting.xml)
。針對上面的問題其實官方提供了一個好的上傳方式----------通過API介面
格式:curl -v -u admin:admin123 --upload-file utils-1.0.jar http://ip/repository/thirdparty/org/foo/utils/1.0/utils-1.0.jar
上傳個圖片試試:curl -v --user ’admin:admin123’ --upload-file ./test.png http://ip/repository/AppReleases/test.png
參考:https://www.cnblogs.com/yucongblog/p/6857318.html