MAVEN2的仓库基本可以分为主机仓库、代理仓库、本地仓库。
主机仓库通常是构件的原始存储位置,比如:核心仓库central、Nexus建立的host仓库。
代理仓库通常是主机仓库的中间代理,比如:Nexus中建立的proxy仓库。
本地仓库通常是构件的最终需求位置,一般是用户代码构建的地方。用户在安装完MAVEN2的时候可以改变本地仓库的位置。
我们可以通过如下命令:mvn help:effective-pom 查看最简单的pom.xml配置实际设置仓库情况:
<repositories>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
可以看到,构建过程中引用到的第三方构件仅会从核心仓库中查找并下载。
每次构建都从http://repo1.maven.org/maven2核心仓库下载是不适宜的。当然,如果引用构件已经存在于本地仓库到是不会重新下载。
我们还有调用企业内部的一些第三方构件的需要,这些都要求我们寻求搭建代理仓库。
Nexus是比较不错的代理仓库。如何搭建网上已经有不少资料,这里就不详细叙述了。
Nexus中已经存在了两个仓库组:Public Repositories、Public Snapshot Repositories。查看组中的仓库包括了主
机仓库(Central)的代理仓库。
我们接下来要做的是让本地安装的MAVEN在构建项目时查找Nexus仓库。
通常,在settings.xml文件中采用Profile来设置是比较方便的,如下:
<profiles>
<profile>
<id>nexus</id>
<repositories>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://localhost:7777/nexus/content/groups/public</url>
</repository>
</repositories>
</profile>
<profile>
<id>nexus-snapshots</id>
<repositories>
<repository>
<id>nexus-snapshots</id>
<name>local private nexus snapshots</name>
<url>http://localhost:7777/nexus/content/groups/public-snapshots</url>
</repository>
</repositories>
</profile>
</profiles>
当然,还要进行激活设定。
<activeProfiles>
<activeProfile>nexus</activeProfile>
<activeProfile>nexus-snapshots</activeProfile>
</activeProfiles>
这时,如果你细心的话会调用命令:mvn help:effective-pom 查看pom.xml的实际设置仓库情况,如下:
<repositories>
<repository>
<id>nexus-snapshots</id>
<name>local private nexus snapshots</name>
<url>http://localhost:7777/nexus/content/groups/public-snapshots</url>
</repository>
<repository>
<id>nexus</id>
<name>local private nexus</name>
<url>http://localhost:7777/nexus/content/groups/public</url>
</repository>
<repository>
<snapshots>
<enabled>false</enabled>
</snapshots>
<id>central</id>
<name>Maven Repository Switchboard</name>
<url>http://repo1.maven.org/maven2</url>
</repository>
</repositories>
个人建议将central的直接请求映射到Nexus相应的仓库组比较合适。在settings.xml文件中增加如下设定就满足了需要。
<mirror>
<id>NexusMirror</id>
<name>Nexus Public Mirror</name>
<url>http://localhost:7777/nexus/content/groups/public</url>
<mirrorOf>central</mirrorOf>
</mirror>
这样基本完成了企业仓库的搭建,也让企业内部员工都能访问企业仓库而不是直接访问MAVEN核心仓库。
企业仓库有需要新增第三方构件需要的时候,可以采用如下命令行完成。
mvn deploy:deploy-file -DgroupId=com.oracle -DartifactId=ojdbc14 \
-Dversion=10.2.0.3.0 -Dpackaging=jar -Dfile=ojdbc.jar \
-Durl=http://localhost:7777/nexus/content/repositories/thirdparty \
-DrepositoryId=thirdparty
http://localhost:7777/nexus/content/repositories/thirdparty是Nexus中已经存在的主机仓库。
企业通常有需要在Nexus中建立自己的仓库组和仓库。假如企业增加了一个仓库,其url为
http://localhost:7777/nexus/content/repositories/test。
如果是jar文件,可以采用前面的命令行mvn deploy:deploy-file来完成仓库中构件的添加。
如果是maven项目,可以使用mvn deploy完成。但在pom.xml文件中应该增加发布管理设定。
<distributionManagement>
<repository>
<id>test</id>
<name>ums test</name>
<url>http://localhost:7777/nexus/content/repositories/test</url>
</repository>
</distributionManagement>
企业仓库的使用基本就这些,有新的想法再丰富的。
分享到:
相关推荐
apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-maven-3.6.3-bin。apache-...
下载 `maven-compiler-plugin-3.8.0-source-release` 后,将其添加到 Maven 的本地仓库,或者在 `pom.xml` 中声明依赖,以便在构建过程中自动下载。对于大型项目,推荐使用 Maven 的私有仓库来存储常用插件,以提高...
2. **添加Maven到PATH**: 将Apache Maven-3.8.1的`bin`目录路径添加到系统环境变量`PATH`中,这样命令行可以识别`mvn`命令。 3. **配置settings.xml**: Maven的配置文件`settings.xml`通常位于`用户主目录\.m2\`下...
Apache Maven 是一个强大的Java项目管理和综合工具,它简化了构建过程,通过标准化构建生命周期和依赖管理,使得开发者能够更高效地构建、测试和部署Java应用程序。Maven 3.3.9是Maven的一个稳定版本,它包含了多个...
Maven更新问题 今天Maven在更新的时候发现一直更新不成功,总结下解决方法。 在apache-maven-3.5.2/conf/setting.xml中加入以下配置即可解决 alimaven aliyun maven ...
Maven仓库包含了大量的插件,覆盖了从源代码格式化到单元测试、代码覆盖率报告、部署等各种功能。 总之,Apache Maven 3.6.0作为一款强大的Java项目管理工具,提供了自动化构建、依赖管理和项目信息管理等功能,极...
maven2-xdoclet2-plugin-2.0.5.jar
apache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9.rarapache-maven-3.3.9....
2. **Maven 3.3.9**: Maven 3.3.9是在2016年发布的,也是Maven 3.x系列的一个重要版本。它在前一版本的基础上优化了性能,并且对多种操作系统和Java版本提供了更好的兼容性。此版本增强了对HTTP代理的支持,改进了...
maven2-xdoclet2-plugin-2.0.6.jar
7. **仓库管理**:Maven 使用本地仓库存储下载的依赖,同时可以连接到远程中央仓库或其他自定义仓库。 8. **多模块项目**:Maven 支持大型项目中的模块化结构,可以在一个顶层 POM 下管理多个子项目。 9. **报告...
Maven-assembly-plugin是maven中针对打包任务而提供的标准插件,可以实现自定义打包。主要提供如下功能: ● 提供一个把工程依赖元素、模块、网站文档等其他文件存放到单个归档文件里。 ● 打包成指定格式分发包,...
Maven 使用 tomcat8-maven-plugin 插件 Maven 是一个流行的构建自动化工具,它可以帮助开发者自动完成项目的编译、测试、打包、部署等任务。 Tomcat 是一个流行的 Web 服务器,Maven 提供了一个插件 tomcat8-maven-...
Apache Maven 是一个强大的项目管理和构建工具,主要用于Java应用程序的开发。它基于项目对象模型(Project Object Model,POM)的概念,使得项目的构建、依赖管理、文档生成、代码质量检查等任务变得简单。Apache ...
Apache Maven 是一个强大的项目管理工具,它主要用于构建、管理和聚合Java项目。这个压缩包包含了Apache Maven的三个不同版本:...同时,学习如何编写POM.xml文件,理解和运用Maven的坐标系统,是掌握Maven的关键。
jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-eclipse-非maven版本jeecg-3.5.1-...
apache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6-bin.tarapache-maven-3.8.6...
2. **boot**目录:包含了用于启动Maven的SmallRye ClassLoader。 3. **conf**目录:包含Maven的配置文件,如`settings.xml`,用户可以通过它来定制Maven的行为,如仓库位置、镜像设置等。 4. **lib**目录:包含了...
apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-maven-3.8.6-bin.zip apache-...
Apache Maven (apache-maven-3.8.4-bin.zip)是一个软件项目管理和理解工具。基于项目对象模型 (POM) 的概念,Maven 可以从一条中央信息中管理项目的构建、报告和文档。