通過一週研究maven,已可順利將自己的web項目成功添加maven依賴,並添加私有倉庫,使項目成功依賴。
一、如何使原有項目依賴maven
1、思路
首先改變目錄結構,添加pom文件,在文件中添加相應的依賴。
2、具體實現
可通過2種方式實現。第一種,通過Eclipse新建項目原型,然後將項目遷移至相應目錄。第二種,直接修改目錄結構。並右鍵項目Configure - Convert to Maven Project。
3、尚未了解
a. 剛修改完成後,項目無法對maven resource產生依賴,pom代碼中添加以下配置成功處理。
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> </plugin> <plugin> <artifactId>maven-war-plugin</artifactId> <configuration> <webResources> <resource> <directory>src/main/webapp</directory> <includes><include>WEB-INF/**.xml</include></includes> </resource> <webResources> </configuration> </plugin>
尚不瞭解原因。
b. 直接修改目錄,併成功加載maven resource後,Eclipse會顯示項目錯誤,但java文件未顯示錯誤。修改項目目錄下.classpath文件後解決。將其中的版本統一。改問題會反覆出現,不明原理。
通過problem定位錯誤,如果是java版本問題,則項目右鍵properties - project facets - 更換java版本。
二、如何添加私有倉庫
1、思路
首先添加maven倉庫服務器,已知archiva和nexus。接着修改pom配置,maven setting配置,最後通過服務器上傳依賴包,並直接通過maven部署依賴寶,即可完成一個簡單的添加。
2、具體實現
a.下載並安裝maven倉庫,我選擇了archiva,新版本nexus不支持jdk1.6。
關於archiva:下載standalone版本。bin目錄下命令行指令 archiva.bat console。成功啓用後,通過127.0.0.1:8080進入archiva界面。
註冊並登陸後,通過Upload Artifact上傳依賴包。
b.修改maven的setting文件({$userroot\.m2\setting.xml})。
添加服務器配置:
<server> <id>my.internal</id> <username>註冊的賬號</username> <password>註冊的密碼</password> </server> <server> <id>my.snapshots</id> <username>註冊的賬號</username> <password>註冊的密碼</password> </server>
添加倉庫配置:
<repository> <id>my.internal</id> <url>http://127.0.0.1:8080/repository/internal</url> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository> <repository> <id>my.snapshots</id> <url>http://127.0.0.1:8080/repository/snapshots</url> <releases> <enabled>true</enabled> <updatePolicy>never</updatePolicy> </releases> <snapshots> <enabled>false</enabled> </snapshots> </repository>
c.修改項目的pom文件
添加字段:
<distributionManagement> <repository> <id>my.internal</id> <name>My Internal Repository</name> <url>http://127.0.0.1:8080/repository/internal</url> </repository> <snapshotRepository> <id>my.snapshots</id> <name>My Snapshot Repository</name> <url>http://127.0.0.1:8080/repository/snapshots/</url> </snapshotRepository> </distributionManagement>
3、尚未了解
不瞭解setting文件中mirror的意義。
不瞭解archiva添加repository groups的意義。