maven总结2(包含怎么安装私服)
传递依赖的冲突解决
传递依赖:A(项目)依赖B(核心包),B依赖C(核心包下的子包)(1.1),B是A的直接依赖,C是A的传递依赖。
- Maven自己调节的原则
1.1.1第一声明者优先原则(谁先定义就用谁的传递依赖)
1.1.2路径近者优先原则(先选择直接依赖再选择传递依赖)
1.2排除依赖
<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>2.3.24</version>
<exclusions>
<!-- 将struts2-spring-plugin中的spring-beans排除掉 -->
<exclusion>
<artifactId>spring-beans</artifactId>
<groupId>org.springframework</groupId>
</exclusion>
</exclusions>
</dependency>
1.3 版本锁定
私服安装
2.解压到本地磁盘
3.使用管理员权限打开dos,在dos下执行命令安装私服
4.启动服务
5.找到私服的访问url:
http://localhost:8081/nexus/#welcome
登陆:admin/admin123
私服仓库类型
Hosted:宿主仓库
存放本公司开发的jar包(正式版本(Releases)、测试版本(snapshot)、第三方(3rd party):存在版权问题--Oracle)
Proxy:代理仓库
代理中央仓库、Apache下测试版本的jar包
Group:组仓库
将来连接组仓库。包含Hosted:宿主仓库,Proxy:代理仓库
上传jar包到私服上
-
在maven目录下conf/settings.xml.认证:配置用户名密码
<server> <id>releases</id> <username>admin</username> <password>admin123</password> </server> <server> <id>snapshots</id> <username>admin</username> <password>admin123</password> </server>
- 在将要上传的项目的pom.xml中配置jar包上传路径url
<distributionManagement>
<repository>
<id>releases</id>
<url>http://localhost:8081/nexus/content/repositories/releases/</url>
</repository>
<snapshotRepository>
<id>snapshots</id>
<url>http://localhost:8081/nexus/content/repositories/snapshots/</url>
</snapshotRepository>
</distributionManagement>
3.在eclipse中执行命令发布项目到私服(上传)deploy
下载jar包到本地仓库(应用)
- 在maven目录下conf/settings.xml。配置模板
profile>
<!--profile的id-->
<id>dev</id>
<repositories>
<repository>
<!--仓库id,repositories可以配置多个仓库,保证id不重复-->
<id>nexus</id>
<!--仓库地址,即nexus仓库组的地址-->
<url>http://localhost:8081/nexus/content/groups/public/</url>
<!--是否下载releases构件-->
<releases>
<enabled>true</enabled>
</releases>
<!--是否下载snapshots构件-->
<snapshots>
<enabled>true</enabled>
</snapshots>
</repository>
</repositories>
<pluginRepositories>
<!-- 插件仓库,maven的运行依赖插件,也需要从私服下载插件 -->
<pluginRepository>
<!-- 插件仓库的id不允许重复,如果重复后边配置会覆盖前边 -->
<id>public</id>
<name>Public Repositories</name>
<url>http://localhost:8081/nexus/content/groups/public/</url>
</pluginRepository>
</pluginRepositories>
</profile>
2.**模板
<activeProfiles>
<activeProfile>dev</activeProfile>
</activeProfiles>