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。如下图: 折腾了好久发现配置放错地方了,...
但是,如果我们直接添加上面的依赖项,Maven 将无法找到该插件,因为该插件不存在于 Maven 的中央仓库中。这是因为 tomcat8-maven-plugin 插件并不是 Maven 的标准插件。 解决方法是使用 Maven 的插件仓库机制。...
2. **本地仓库**: Maven 默认的本地仓库位于用户主目录下的 `.m2\repository` 目录。如果不满意这个位置,可以在 settings.xml 中修改。 3. **全局配置**: 如果有团队开发,可以考虑将 settings.xml 文件放在版本...
当你需要引入新的库或jar包到你的项目中时,Maven仓库搜索服务就显得尤为重要。本文将详细介绍如何利用Maven仓库搜索服务来查找并获取所需的依赖坐标。 Maven依赖的基本格式是groupId:artifactId:version,它由三...
### Maven的生命周期和插件详解 #### Maven生命周期概述 Maven是一个项目管理和综合工具,它通过一系列预定义的任务和明确的构建生命周期来管理项目的构建、报告和文档。Maven的核心特性之一是其生命周期...
解决tomcat8-maven-plugin-3.0-r1655215.jar阿里云同有的问题。放到路径org\apache\tomcat\maven\tomcat8-maven-plugin\3.0-r1655215\就可以了
Maven安装与配置:Windows和Linux环境下的步骤; Maven安装与配置:Windows和Linux环境下的步骤; Maven安装与配置:Windows和Linux环境下的步骤; Maven安装与配置:Windows和Linux环境下的步骤; Maven安装与配置...
配置Maven仓库 Maven默认使用中央仓库,但也可以配置其他仓库,例如Nexus或Artifactory。在`settings.xml`文件中,可以配置仓库信息,包括仓库的URL、用户名和密码等。 #### 注意事项 - **JDK版本兼容性**:确保...
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第三方仓库配置详解 #### 一、为什么使用Maven? 在现代的Java开发中,Maven已经成为构建管理和依赖管理的标准工具。它提供了一种强大的方法来管理项目的构建过程、依赖关系及其文档。 ##### 关于第三方...
XJar-Maven-Plugin是对的一个Maven插件封装,实现可通过Maven命令或绑定在Maven的生命周期之中执行,从而更加便捷的方式集成了 。 GitHub: : 什么是XJar XJar是基于对JAR包内部资源的加密以及扩展ClassLoader来...
Maven Enforcer插件-Maven:trade_mark:的爱铁拳 Enforcer插件提供了控制某些环境约束的目标,例如Maven版本,JDK版本和OS系列以及更多内置规则和用户创建的规则。 文献资料 可以在上找到更多信息。 与Maven ...
maven3 安装: 安装 Maven 之前要求先确定你的 JDK 已经安装配置完成。Maven是 Apache 下的一个项目,目前最新版本是 3.0.4,我用的也是这个。 首先去官网下载 Maven:...
许可证Maven插件 这是 。 发行 确保gpg-agent正在运行。 执行mvn -B release:prepare release:perform 要发布站点,请执行以下操作: cd target/checkout mvn verify site -DperformRelease scm-publish:publish-...
现代化Maven插件 ... 默认配置检测 ,包括第三方库,如 , 和 。 配置 要运行Modernizer,请将以下内容添加到pom.xml中的节中,然后调用mvn modernizer:modernizer : < groupId>org.gaul < artifactId>
maven的setting配置文件详解。。。。
本地仓库服务于当前电脑上所有的Maven工程,而远程仓库和中央仓库则可以服务于更广范围内的Maven工程。Maven的配置文件`pom.xml`是构建过程中的核心,其中包含了与构建相关的所有设置。 Maven还提供了一套标准化的...