使用Maven搭建自己的專案骨架archetype(六)
阿新 • • 發佈:2019-02-04
六、上傳到nexus伺服器並且使用idea生成專案
本節中,大部分是配置,解釋不會特別詳細,如果有看不懂的,查Maven或者nexus的配置說明即可。
這裡,我們還是使用之前建立的 simple_archetype專案,將它部署到自己搭建的nexus伺服器上。如果不知道如何搭建nexus伺服器,請自行查詢官網教程。
1. 指定nexus伺服器中倉庫的地址
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>demo.keyy</groupId>
<artifactId>simple_archetype</artifactId>
<version>1.0</version>
<packaging>maven-archetype</packaging >
<distributionManagement>
<repository>
<id>nexus-releases</id>
<name>Nexus Release Repository</name>
<url>http://localhost:8081/repository/sqsd_release/</url>
</repository>
<snapshotRepository>
<id>nexus-snapshots</id>
<name>Nexus Snapshot Repository</name>
<url>http://localhost:8081/repository/sqsd_public/</url>
</snapshotRepository>
</distributionManagement>
<build>
<extensions>
<extension>
<groupId>org.apache.maven.archetype</groupId>
<artifactId>archetype-packaging</artifactId>
<version>3.0.1</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-archetype-plugin</artifactId>
<version>3.0.1</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
>>解釋
- <packaging>中的配置,以及build下新增的這兩部分(extesions 和 pluginManagement) 是由於我部署到nexus上,nexus(當前使用的版本3.x)貌似無法正常識別它是 archetype,所以在nexus的倉庫中建立 archetype-catalog.xml時不會識別。 這裡的配置是在stackoverflow上查到的別人的解決方案。
- distributionManagement中指定了上傳的nexus倉庫地址,如果此時的versoin是snapshot,則會部署到 <snapshotRepository>指定的地址,否則部署到<repository>的地址
2. 配置上傳時需要進行使用者驗證
在 ~.m2資料夾下的 settings.xml中,新增:
<servers>
<server>
<id>nexus-releases</id>
<username>admin</username>
<password>admin123</password>
</server>
<server>
<id>nexus-snapshots</id>
<username>admin</username>
<password>admin123</password>
</server>
</servers>
>>解釋
這裡配置了2個 server, 分別對應snapshot和release倉庫的驗證資訊, 主要注意的是 id的內容,必須和上面 <distributionManagement>裡面2個id相同。
3. 上傳到nexus倉庫
如果倉庫地址和使用者驗證都已經成功設定之後,下面進入 simple_archetype 這個骨架專案的根目錄,執行:
mvn deploy
圖1. 執行deploy命令,上傳到nexus
圖2. 執行成功
顯示 BUILD SUCCESS,就說明上傳成功了,此時可以進入到對應的nexus倉庫下,檢視是否骨架已經存在。
圖3. 上傳nexus成功
4. 使用idea建立專案
剩下的就簡單了,首先要確定idea使用的Maven是我們自己的,不是它預設的; 並且確保它使用的 settings.xml 也是我們放入 ~.m2資料夾下的。
圖4. 確認idea的Maven配置
然後再建立專案中,使用Maven,並且輸入我們剛才骨架的座標:
圖5. 通過Maven建立專案
圖6. 輸入我們archetype骨架的專案GAV座標
最後,在archetype列表中找到我們剛才新增的archetype,一直點選Next就可以了。
最後注意的是,建立好後,一定要點選右下角提示的 Enable Auto Import 哦!
5. 將已有jar包新增到nexus
這裡只是普通的jar包,沒有測試過將archetype的jar包上傳後是否可用的情況。
在已有jar包的情況下,要新增到nexus某個倉庫中,執行以下命令:
mvn deploy:deploy-file -DgroupId="com.demo1" -DartifactId="ojdbc" -Dversion="6.0" -Dpackaging="jar" -Dfile="H:\IntelliJIdeaWorkSpace\ojdbc6.jar" -Durl="http://113.240.224.29:18087/repository/sqsd_3rdparty/" -DrepositoryId="nexus-3rdparty"
- -DgroupId 是打算把這個jar包上傳到nexus後,歸屬到哪個groupId, 它和本身建立該jar包時的專案配置無關,完全按照個人喜好輸入。
- -DartifactId 和groupId一樣,按照個人喜歡,給他起個名。
- -Dversion 和上面2個一樣,按個人喜好起個版本號。
- -Dpackaging=”jar” 指定包型別
- -Dfile 指定上傳jar包在本地的位置
- -Durl 指定要上傳到的nexus倉庫的url
- -DrepositoryId 這個比較重要,它會根據你 ~.m2\settings.xml 中的 server配置,去尋找id相同的server,根據它的 使用者名稱和密碼來作為上傳jar包的驗證。
注意,指定每個引數的時候,值一定要用雙引號包起來,否則可能會出錯。
以上是使用Maven的一點學習經驗,如果有問題還請各位指出,謝謝。