通过一周研究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的意义。