背景说明
又是记性不好的记录类文章,没有任何技术含量,只是用于防止以后换电脑搭建环境时要用的。
本次主要记录在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的。
相关推荐
NULL 博文链接:https://eileenlml.iteye.com/blog/1537512
在离线环境进行maven项目开发时,总会遇到需要频繁添加jar包依赖来进行功能拓展,然而某一个jar包的引入,又会需要间接依赖很多其他的类库,一个一个的下载又很麻烦。这里记录一种简单点的方法,通过简单的配置快递...
(2)需要安装maven,配置maven到环境变量; (3)将ROOT.war包放在tomcat 8.0 及以上tomcat的 tomcat-8.0.*\webapps\ 目录下(若存在ROOT文件夹,可先在其他地方[不能在webapps]进行备份后删去); (4)运行,...
主要记录Maven项目管理工具的常用命令,生命周期,概念模型,Maven私服安装,上传本地资源到私服,从私服下载资源,安装第三方jar包到本地仓库,安装第三方jar包到私服,希望学习maven的朋友进行交流!
排班: 医生排班U里 仓库管理: 入库单管理、库存查询、出库单管理、操作记录管理等 药房管理: 药房详情管理、门诊取药管理、住院取药管理 二、项目运行 环境配置: Jdk1.8 + Tomcat8.5 + mysql + Eclispe ...
仓库连接器插件 Jenkins,允许从或类的存储库中检索工件或从中部署以及实现静态服务器。2.0.0变更随着版本2.0.0的发布,进行了以下更改,其中一些更改可能需要重新配置作业,尽管没有一个应该立即停止工作。 :...
1711A 六组项目简介(仓库管理系统) ...菜单管理: 1用户管理 2角色管理 ...配置:项目用的是maven+ssm框架+httpclient+webservice+mongodb+redis缓存技术,需要配置相应的配置文件,才可以运行此文件
记录自己的指标 v. 44.5. 添加你自己的公共指标 vi. 44.6. 指标仓库 vii. 44.7. Dropwizard指标 viii. 44.8. 消息渠道集成 vi. 45. 审计 vii. 46. 追踪(Tracing) i. 46.1. 自定义追踪 viii. 47. 进程监控 i. 47.1...
修改配置文件:根据实际情况修改项目中的配置文件,如application.properties和application.yml,以满足您的需求。e. 启动项目:在项目根目录下执行mvn spring-boot:run命令启动项目。您可以通过浏览器访问...
## 1.maven打包首先在编译之前需要注意我们在maven-compile-plugin中有个参数配置, -proc:none -proc:{none | only}:交替情况下,javac会运行注解处理器并编译全部源文件。如果使用了proc:none选项,那么所有...
平台使用了maven作为项目管理,使用了web开发流行的框架便于学习使用,具体使用了spring、springmvc、apache?shiro、hibernate、spring?data?jpa、ehcache等框架,为了统一页面风格使用DWZ作为页面富客户端的展示。 ...
29. Maven: 将会把最新稳定版推送到maven中央仓库, 方便用户接入和使用; 30. 一致性:基于Redis分布式锁保证集群分布式调度的最终一致性, 一次任务调度只会触发一次执行; 31. 全异步:任务调度流程全异步化设计实现...
公告发布的时间范围进行搜索,在更多模块下用户可以动态切换系统主题,然后让用户无感知的记录用户行为,当用户退出登录后重新登录,系统的主题还是用户退出登录时所选择的主题。 管理员和超级管理员成功登入系统...