maven在某个统一的位置存储所有maven项目共享构件,这个统一位置就是仓库
>> 仓库分类
maven只有两种仓库:本地仓库和远程仓库。
这里介绍一些特殊的远程仓库:
* 中央仓库是maven核心自带的远程仓库,它包含了绝大部分开源构件。
* 私服是另一种特殊的远程仓库,为了节省宽带和时间,应该在局域网架设一个私有仓库服务器,用其代理所有外部的远程仓库,内部的项目还能部署到私服上供其他项目使用。
* 除了中央仓库和私服,还有很多其他公开的远程仓库,常见的有Java.net Maven仓库http://download.java.net/maven/2/和JBoss Maven库httpL//repository.jboss.com/maven2等
本地仓库默认路径是$USER_HOME/.m2/repository/,如果自己想自定义路径,可以修改~/.m2/settings.xml文件:
<settings> <localRepository>D:\java\repository\</localRepository> </settings>
默认情况向~/.m2/settings.xml文件时不存在的,需要从$M2_HOME/conf/settings.xml文件复制一份过去。执行mvn clean install可以构建到本地仓库中。
对每个用户来说,本地仓库只有一个,但是可以配置很多歌远程仓库
>> 私服
假设在局域网内的仓库服务,私服代理广域网上的远程仓库,供局域网内maven用户使用。当maven需要下载构件的时候,它从私服请求,如果私服上不存在该构件,则从外部远程仓库下载,缓存到私服上后,再为maven的下载请求提供下载,此外一些无法从外部仓库下载到的构件也能从本地上传到私服后供大家下载。
即便是只有一个连入internet个人机器上也应该建立私服,因为私服可以帮你:
* 节省自己的外网宽带
* 加速maven构建
* 部署第三方构件
* 提高稳定性,增强控制
* 降低中央仓库负荷
>> 远程仓库的配置
<repositories> <repository> <id>jboss</id> <name>JBoss Repository</name> <url>http://repository.jboss.com/maven2/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>false</enabled> <updatePolicy>daily</updatePolicy> <checksumPolicy>ignore</checksumPolicy> </snapshots> <layout>default</layout> </repository> </repositories>
在settings.xml文件中配置认证信息:
<settings> <servers> <server> <id>my-proj</id> <username>user</username> <password>pwd</password> </server> </servers> </settings>
>> 配置部署的远程仓库
<distributionManagement> <repository> <id>proj-releases</id> <name>Proj Release Repository</name> <url>http://192.168.1.100/content/repositories/proj-releases</url> </repository> <snapshotRepository> <id>proj-snapshots</id> <name>Proj Snapshot Repository</name> <url>http://192.168.1.100/content/repositories/proj-snapshots</url> </snapshotRepository> </distributionManagement>
在需要认证的时候,需要在settings.xml中创建一个server元素,其id与仓库的id匹配,并配置正确的认证信息,不论是从远程仓库下载还是部署构件至远程仓库,当需要认证的时候,配置方式都是一样的。
配置正确后,运行mvn clean deploy就会部署上去了,哦也~~
>> 快照版本
版本值1.0.1、1.2-alpha-4都表示稳定版,而2.1-SNAPSHOT、2.2-20111214.221414-13都是快照版
使用快照的原因:如果版本设定为2.1-SNAPSHOT,然后发布到私服中,那么在发布的过程中,maven会自动为构件打上时间戳。比如2.1-20091214.221414-12表示2009年12月14日22点14分14秒,第12次快照。有了该时间戳,那么就很容易找到最新的SNAPSHOT版本,但其他依赖这个构件的时候,会自动去仓库检查最新的SNAPSHOT版本,发现哟更新的时候就会下载最新的。
但经过完善的测试后,版本2.1文档版发布,只对应了唯一的构件,不会有时间戳了。
>> 镜像
任何一个可以从仓库Y获得的构件,都能从它的镜像X中获取,也就是说镜像是原仓库的超集。
由于地理位置因素,可以配置镜像提供比中央仓库更快的服务,比如http://maven.net.cn/content/groups/public/是中央仓库http://repo1.maven.org/maven2/在中国的镜像,可以配置maven使用该镜像代替中央仓库,编辑settings.xml文件:
<settings> <mirrors> <mirror> <id>maven.net.cn</id> <name>one mirror</name> <url>http://maven.net.cn/content/groups/public</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings>
如果该镜像需要认证,也是同之前的配置server,不解释了~
<mirrorOf>*</mirrorOf>:所有的远程仓库
<mirrorOf>external:*</mirrorOf>:匹配所有远程仓库,但是localhost,file://等除外,也就是本地的不需要经过它了
<mirrorOf>repo1,repo2</mirrorOf>:匹配逗号隔开的多个仓库
<mirrorOf>*,!repo1</mirrorOf>:匹配所所有远程仓库,repo1除外
仓库搜索服务:
Snatype Nexus:http://repository.sonatype.org/
Jarvana:http://jarvana.com/jarvana/
本人博客已搬家,新地址为:http://yidao620c.github.io/
相关推荐
Maven更新问题 今天Maven在更新的时候发现一直更新不成功,总结下解决方法。 在apache-maven-3.5.2/conf/setting.xml中加入以下配置即可解决 alimaven aliyun maven ...
使用eclipse整合maven时所需要使用的配置文件;只需修改文件中的本地仓库路径即可完成整合,java初学者必选。
Failed to execute goal org.apache.maven.plugins:maven-clean-plugin:2.5:clean (default-clean) on project
idea创建Maven项目时,报错显示Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.0.2:resources,并且Maven插件内看不到 mybatis-generator。如下图: 折腾了好久发现配置放错地方了,...
在<plugins></plugins>中添加 <groupId>org.apache.maven.plugins <artifactId>maven-compiler-plugin <version>3.8.1 <source>1.8 <target>1.8 </plugin>
maven搭建项目:springmvc+hibernate
如何输入关键字,寻找需要依赖jar的MAVEN坐标,需要提供确切的MAVEN坐标 1.Sonatype Nexus 地址: https://repository.sonatype.org 2. Jarvana 地址: http://www.jarvana.com/jarvana 3.MVNbrowser 地址: ...
Maven Enforcer插件-Maven:trade_mark:的爱铁拳 Enforcer插件提供了控制某些环境约束的目标,例如Maven版本,JDK版本和OS系列以及更多内置规则和用户创建的规则。 文献资料 可以在上找到更多信息。 与Maven ...
ImpSort Maven插件在以下位置查看此插件的文档: : 整理您的展示次数! 一个Maven插件,用于对Java源文件中的import语句进行排序。 该插件将用于其自己的版本。 它的公共API是目标和配置选项的名称。
Maven3实战笔记04——Maven的生命周期和插件。
maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成。Maven是 Apache 下的一个项目,目前最新版本是 3.0.4,我用的也是这个。 首先去官网下载 Maven:...
Maven的安装包,解压即安装
Over 90 hands-on recipes to successfully build and automate development life cycle tasks following Maven conventions and best practices About This Book Understand the features of Apache Maven that ...
解决tomcat8-maven-plugin-3.0-r1655215.jar阿里云同有的问题。放到路径org\apache\tomcat\maven\tomcat8-maven-plugin\3.0-r1655215\就可以了
2021-10-28官网下载archetype-catalog.xml。(maven项目快速搭建,缺少这个文件时,提示maven-archetype-webapp could not resolve archetpye)
apt-maven-插件 apt-maven-plugin提供Java 6 APT功能的Maven集成。 支持的目标是 process - to process main sources test-process - to process test sources 这是配置示例 <groupId>com.mysema.maven</groupId...
maven的setting配置文件详解。。。。
Maven使用tomcat8-maven-plugin插件
angular-maven-插件一个旨在帮助部署 angularjs 应用程序但使用 maven 作为构建工具的开发人员的插件。 到目前为止有两个目标: 模仿 grunt-html2js 将 html 模板组合成单个 javascript 文件以与 Angular.js 一起...
现代化Maven插件 ... 默认配置检测 ,包括第三方库,如 , 和 。 配置 要运行Modernizer,请将以下内容添加到pom.xml中的节中,然后调用mvn modernizer:modernizer : < groupId>org.gaul < artifactId>