`
hellohank
  • 浏览: 146014 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

记录一下maven中多仓库的配置

阅读更多

背景说明

又是记性不好的记录类文章,没有任何技术含量,只是用于防止以后换电脑搭建环境时要用的。

本次主要记录在maven中如何让jar包在多仓库中查找,直到找到为止。

方法有多种,这里说三个比较常见的。

具体步骤

自建私有nexus仓库

在私有nexus仓库中,从多个第三方仓库中获取jar包,然后在自己的maven的settings.xml中配置mirror,将所有请求映射到这个私有仓库即可。具体做法和mirror配置网上很多。mirror配置举例如下(将所有下载映射到https://repo1.maven.org/maven2/):

<mirror>
      <id>maven repo1</id>
      <mirrorOf>*</mirrorOf>
      <name>Human Readable Name for this Mirror.</name>
      <url>https://repo1.maven.org/maven2/</url>
    </mirror>

这个地方,有一点要注意一下:多个mirror配置,如果mirrorOf相同,只会有一个有效,所以多个仓库使用并不是通过配置多个mirror来实现的,而是mirror到私有仓库,由私有仓库连接多个第三方仓库实现的。

在项目的pom中指定仓库

这个方法用的很多,也是比较建议的一种,因为灵活。但也要注意结合实际,因为有些公司在开发环境下的maven仓库和部署环境下的url等不一样,就不能使用这个方式。

具体做法是在pom文件的project节点下增加repositories配置,举例如下:

                  <repositories>
			<repository>
				<id>repo1</id>
				<name>Public Repository</name>
				<url>https://repo1.maven.org/maven2/</url>
				<layout>default</layout>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
			<repository>
				<id>repo</id>
				<name>mic-inner-repositories</name>
				<url>https://repo.maven.apache.org/maven2/</url>
				<layout>default</layout>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
			<repository>
				<id>central</id>
				<url>http://central.maven.org/maven2/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
			<repository>
				<id>atlassian</id>
      			<url>https://maven.atlassian.com/repository/public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>

		</repositories>

 

在settings.xml做全局配置

这个做法很绝,因为是全局配置,所以不需要每个项目单独在pom中配置,适合很多情况(特别是上面说的开发环境和生产环境仓库不一致的问题),但需要开发人员配置自己的settings.xml。具体做法是:在maven的settings.xml文件的profiles节点下新增一个profile,举例如下:

  	<profile>
		<id>repositorys</id>

		<activation>
			<activeByDefault>true</activeByDefault>
		</activation>
		<repositories>
			<repository>
				<id>repo1</id>
				<name>Public Repository</name>
				<url>https://repo1.maven.org/maven2/</url>
				<layout>default</layout>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
			<repository>
				<id>repo</id>
				<name>mic-inner-repositories</name>
				<url>https://repo.maven.apache.org/maven2/</url>
				<layout>default</layout>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
			<repository>
				<id>central</id>
				<url>http://central.maven.org/maven2/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>
			<repository>
				<id>atlassian</id>
      			<url>https://maven.atlassian.com/repository/public/</url>
				<releases>
					<enabled>true</enabled>
				</releases>
				<snapshots>
					<enabled>true</enabled>
				</snapshots>
			</repository>

		</repositories>
	</profile>

 注意一下,这个配置里面的大部分内容与第二个方案中相同,但要特别注意:<activeByDefault>true</activeByDefault>,这才是整个配置的灵魂!有了这个配置,就默认启动这个配置的,否则还需要在mvn命令中指定使用哪个profile的。

分享到:
评论

相关推荐

    maven本地仓库

    Maven仓库分为三种类型:本地仓库(Local Repository)、远程仓库(Remote Repository)和中央仓库(Central Repository)。本地仓库是默认的首要资源,Maven首先在这里查找项目依赖。如果找不到,它会尝试从远程...

    maven本地仓库(常用Jar包)

    这些库已经被广泛地接受并应用在各种项目中,它们的功能涵盖了数据持久化、网络通信、日志记录、单元测试等多个领域。 **避免从中央仓库下载** Maven中央仓库是全球最大的开源软件库,包含了数以万计的Java库。...

    Maven本地仓库.zip

    `.jar`文件是实际的依赖库,`.pom`文件包含了依赖的元数据,`.lastUpdated`文件记录了Maven尝试从远程仓库下载依赖的状态。 总结来说,Maven本地仓库是项目构建过程中不可或缺的一部分,它提供了快速访问和管理依赖...

    我的maven本地仓库1

    总结起来,"我的maven本地仓库1"是一个个人维护的Maven依赖仓库,它包含了一位开发者在长期开发过程中积累的jar包和相关配置,旨在提高开发效率,确保项目依赖的一致性,并提供离线开发的可能性。对于熟悉Maven的...

    Maven学习记录(一):安装与环境配置

    ** Maven学习记录(一):安装与环境配置 ** Maven是Java开发中不可或缺的构建工具,它通过统一的项目对象模型(Project Object Model,POM)管理项目的构建、报告和依赖关系,极大地简化了项目的构建流程。这篇...

    Maven仓库管理

    #### 配置Maven仓库 ##### 修改本地仓库位置 默认情况下,Maven 的本地仓库位于 `${user.home}/.m2/repository`。如果需要改变本地仓库的位置,可以通过以下方式配置: 1. 在用户的 `.m2/settings.xml` 文件中...

    maven仓库清理脚本

    这个脚本能够智能地检测并移除本地Maven仓库中那些下载不完全或者有问题的依赖文件,从而避免因为这些文件的存在而引发的构建错误。通过执行这个脚本,开发者可以快速、高效地清理掉所有下载失败的依赖,为下一次的...

    maven学习记录

    ### 配置Maven仓库 Maven支持本地仓库和远程仓库。默认情况下,Maven的本地仓库位于用户家目录下的`.m2/repository`目录。如果需要更改仓库的位置,可以在`settings.xml`文件中配置。 ```xml ...

    Maven3使用配置步骤

    默认情况下,Maven会将本地仓库放在用户主目录下的`.m2`文件夹中,但是也可以自定义仓库的位置。 - **修改仓库位置**: - 打开Maven安装目录下的`conf/settings.xml`文件。 - 修改`localRepository`标签内的值,...

    maven批量导入jar包到本地仓库

    在使用过程中,你只需要提供待导入的JAR包列表,工具就会将它们一一添加到Maven的本地仓库,并且自动生成对应的`dependency`配置,这样在项目中就可以直接引用这些JAR包了。 例如,压缩包中的`dom4j-1.6.1.jar`是一...

    maven仓库索引压缩包

    Maven仓库是Java开发中不可或缺的一部分,它存储了大量的第三方库,为开发者提供了便捷的依赖管理服务。Maven仓库索引压缩包则是为了优化Maven在构建项目时对远程仓库的访问速度而设计的。当我们需要从远程Maven仓库...

    maven本地仓库压缩包

    Maven仓库中的文件按以下结构组织: ``` groupId1/artifactId1/ /version1/ artifactId1-version1.jar artifactId1-version1.pom /version2/ ... groupId2/artifactId2/ ... ``` 每个依赖项都有一个对应的...

    阿里云maven私服jar包上传和拉取教程

    - 按照指引创建一个新的Maven仓库,并记录下仓库的URL、ID以及认证信息等关键数据。 - 根据实际需求,配置仓库为发布版本仓库(releases)或者快照版本仓库(snapshots)。 3. **配置settings.xml**: - 编辑项目的`...

    Maven仓库的压缩包,解压后将aspectjweaver-1.9.6.jar替换到自己的Maven仓库即可

    Maven仓库是Java开发中不可或缺的一部分,它管理着各种项目的依赖,使得开发者无需手动处理库的下载和配置。在本主题中,我们关注的是一个特定的库——AspectJ Weaver,版本为1.9.6,它是AspectJ框架的核心组件,...

    Java发布包到maven公共仓库完整教程

    使用`mvn clean package`命令生成JAR文件,然后使用`mvn deploy`命令将项目上传到Maven仓库。GPG插件会自动处理签名。 2. **验证上传**: 上传后,访问Maven仓库的URL检查你的项目是否已成功部署。对于快照版本,...

    maven的配置

    4. **Maven本地仓库配置** Maven会将所有下载的依赖库存放在本地仓库,默认位置是用户的主目录下的`.m2\repository`文件夹。如果你需要更改这个位置,可以编辑`%M2_HOME%\conf\settings.xml`文件中的`local...

    Maven仓库失效文件清理 - MrCleaner.zip

    为了解决这一问题,出现了名为"MrCleaner"的Java工具,它专门用于清理Maven仓库中的失效文件。 MrCleaner是一款基于Java开发的小型实用程序,设计目标是帮助开发者快速有效地清理Maven本地仓库中的.lastUpdate文件...

    用Artifactory管理内部Maven仓库

    2. **创建Maven仓库**:在Artifactory的Web界面中创建Maven本地仓库和远程仓库。 3. **配置Maven客户端**:在开发者的机器上修改`settings.xml`文件,指向Artifactory的URL,设置代理和认证信息。 4. **部署工件**...

    idea配置maven+Springboot+mybatis+oracle

    在IT行业中,集成开发环境(IDE)如IntelliJ IDEA(简称Idea)是程序员们常用的工具,尤其在Java开发领域。...在实际开发中,还需要注意异常处理、日志记录、安全性配置等多个方面,确保系统的稳定和安全。

Global site tag (gtag.js) - Google Analytics