背景说明
又是记性不好的记录类文章,没有任何技术含量,只是用于防止以后换电脑搭建环境时要用的。
本次主要记录在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仓库分为三种类型:本地仓库(Local Repository)、远程仓库(Remote Repository)和中央仓库(Central Repository)。本地仓库是默认的首要资源,Maven首先在这里查找项目依赖。如果找不到,它会尝试从远程...
这些库已经被广泛地接受并应用在各种项目中,它们的功能涵盖了数据持久化、网络通信、日志记录、单元测试等多个领域。 **避免从中央仓库下载** Maven中央仓库是全球最大的开源软件库,包含了数以万计的Java库。...
`.jar`文件是实际的依赖库,`.pom`文件包含了依赖的元数据,`.lastUpdated`文件记录了Maven尝试从远程仓库下载依赖的状态。 总结来说,Maven本地仓库是项目构建过程中不可或缺的一部分,它提供了快速访问和管理依赖...
总结起来,"我的maven本地仓库1"是一个个人维护的Maven依赖仓库,它包含了一位开发者在长期开发过程中积累的jar包和相关配置,旨在提高开发效率,确保项目依赖的一致性,并提供离线开发的可能性。对于熟悉Maven的...
** Maven学习记录(一):安装与环境配置 ** Maven是Java开发中不可或缺的构建工具,它通过统一的项目对象模型(Project Object Model,POM)管理项目的构建、报告和依赖关系,极大地简化了项目的构建流程。这篇...
#### 配置Maven仓库 ##### 修改本地仓库位置 默认情况下,Maven 的本地仓库位于 `${user.home}/.m2/repository`。如果需要改变本地仓库的位置,可以通过以下方式配置: 1. 在用户的 `.m2/settings.xml` 文件中...
这个脚本能够智能地检测并移除本地Maven仓库中那些下载不完全或者有问题的依赖文件,从而避免因为这些文件的存在而引发的构建错误。通过执行这个脚本,开发者可以快速、高效地清理掉所有下载失败的依赖,为下一次的...
### 配置Maven仓库 Maven支持本地仓库和远程仓库。默认情况下,Maven的本地仓库位于用户家目录下的`.m2/repository`目录。如果需要更改仓库的位置,可以在`settings.xml`文件中配置。 ```xml ...
默认情况下,Maven会将本地仓库放在用户主目录下的`.m2`文件夹中,但是也可以自定义仓库的位置。 - **修改仓库位置**: - 打开Maven安装目录下的`conf/settings.xml`文件。 - 修改`localRepository`标签内的值,...
在使用过程中,你只需要提供待导入的JAR包列表,工具就会将它们一一添加到Maven的本地仓库,并且自动生成对应的`dependency`配置,这样在项目中就可以直接引用这些JAR包了。 例如,压缩包中的`dom4j-1.6.1.jar`是一...
Maven仓库是Java开发中不可或缺的一部分,它存储了大量的第三方库,为开发者提供了便捷的依赖管理服务。Maven仓库索引压缩包则是为了优化Maven在构建项目时对远程仓库的访问速度而设计的。当我们需要从远程Maven仓库...
Maven仓库中的文件按以下结构组织: ``` groupId1/artifactId1/ /version1/ artifactId1-version1.jar artifactId1-version1.pom /version2/ ... groupId2/artifactId2/ ... ``` 每个依赖项都有一个对应的...
- 按照指引创建一个新的Maven仓库,并记录下仓库的URL、ID以及认证信息等关键数据。 - 根据实际需求,配置仓库为发布版本仓库(releases)或者快照版本仓库(snapshots)。 3. **配置settings.xml**: - 编辑项目的`...
Maven仓库是Java开发中不可或缺的一部分,它管理着各种项目的依赖,使得开发者无需手动处理库的下载和配置。在本主题中,我们关注的是一个特定的库——AspectJ Weaver,版本为1.9.6,它是AspectJ框架的核心组件,...
使用`mvn clean package`命令生成JAR文件,然后使用`mvn deploy`命令将项目上传到Maven仓库。GPG插件会自动处理签名。 2. **验证上传**: 上传后,访问Maven仓库的URL检查你的项目是否已成功部署。对于快照版本,...
4. **Maven本地仓库配置** Maven会将所有下载的依赖库存放在本地仓库,默认位置是用户的主目录下的`.m2\repository`文件夹。如果你需要更改这个位置,可以编辑`%M2_HOME%\conf\settings.xml`文件中的`local...
为了解决这一问题,出现了名为"MrCleaner"的Java工具,它专门用于清理Maven仓库中的失效文件。 MrCleaner是一款基于Java开发的小型实用程序,设计目标是帮助开发者快速有效地清理Maven本地仓库中的.lastUpdate文件...
2. **创建Maven仓库**:在Artifactory的Web界面中创建Maven本地仓库和远程仓库。 3. **配置Maven客户端**:在开发者的机器上修改`settings.xml`文件,指向Artifactory的URL,设置代理和认证信息。 4. **部署工件**...
在IT行业中,集成开发环境(IDE)如IntelliJ IDEA(简称Idea)是程序员们常用的工具,尤其在Java开发领域。...在实际开发中,还需要注意异常处理、日志记录、安全性配置等多个方面,确保系统的稳定和安全。