我是使用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私服使用经验总结的更多相关文章

  1. 掌握 Maven 私服

    前言 在 Java EE 开发中,我们使用 Maven 构建工具主要来管理项目的第三方库的依赖,以及公司内部其他项目服务的依赖.因此 Maven 私服就是必不可少的一环,本文主要对 Maven 私服的 ...

  2. CentOS7-Docker 搭建Maven私服

    使用Docker搭建Maven私服 前言本文主要介绍,使用Docker创建一个nexus私服,然后编写一个Library,上传到私服,然后使用demo工程依赖. 本文不对Maven.Nexus.私服等 ...

  3. maven私服搭建

    一.软件安装 地址:http://www.sonatype.org/nexus/thank-you-for-downloading/?dl=tgz 解压: 启动: >> nexus sta ...

  4. maven私服搭建(centOS6.5)

    maven的好处和私服的应用本文不赘述,私服搭建如下: MAVEN 私服搭建(centOS 6.5 环境) 1.  准备环境,搭建centOS6.5系统环境,略 2.  准备对应的软件包如下: A. ...

  5. Centos 基础开发环境搭建之Maven私服nexus

    hmaster 安装nexus及启动方式 /usr/local/nexus-2.6.3-01/bin ./nexus status Centos 基础开发环境搭建之Maven私服nexus . 软件  ...

  6. 搭建Maven私服-续

    前几天搭建了Maven私服,但是想在外网访问只能通过ip地址,因为公司用的不是固定ip所以,ip地址每次不一样,都要先打开极路由查看一下当前ip才能用,更恶心的是,代码check out只能一次,下次 ...

  7. 搭建Maven私服

    最近从SVN下载的代码,在本地构建时出现了诸多问题,部分依赖下载超时,就想起在局域网搭建Maven私服,废话不说了,在测试服务器上建的已经成功,就随便找台机子再练习一遍顺道写个日志.1.前往http: ...

  8. Maven私服Nexus3.x环境构建操作记录

    Maven介绍Apache Maven是一个创新的软件项目管理和综合工具.Maven提供了一个基于项目对象模型(POM)文件的新概念来管理项目的构建,可以从一个中心资料片管理项目构建,报告和文件.Ma ...

  9. Maven学习 (四) 使用Nexus搭建Maven私服

    为什么要搭建nexus私服,原因很简单,有些公司都不提供外网给项目组人员,因此就不能使用maven访问远程的仓库地址,所以很有必要在局域网里找一台有外网权限的机器,搭建nexus私服,然后开发人员连到 ...

随机推荐

  1. for_each使用方法详解

    for_each使用方法详解[转]   Abstract之前在(原創) 如何使用for_each() algorithm? (C/C++) (STL)曾經討論過for_each(),不過當時功力尚淺, ...

  2. XPATH中text()和string()的使用区别

    <table style="WIDTH: 95.45%; BORDER-COLLAPSE: collapse; EMPTY-CELLS: show; MARGIN-LEFT: 4.55 ...

  3. switch语句中 参数的类型

    switch可作用于char byte short int switch可作用于char byte short int对应的包装类 switch不可作用于long double float boole ...

  4. Windows Server 2012 R2上安装.Net4.6.1出错

    在Windows Server 2012 R2上安装.Net4.6.1时提示“你需要先安装对应于 KB2919355 的更新,然后才可在……”解决方式: 在官网下载更新包,下载地址:https://w ...

  5. Flutter——消息框(Fluttertoast)

    引入依赖: dependencies: fluttertoast: ^3.1.3 import 'package:flutter/material.dart'; import 'package:flu ...

  6. 《The one!》团队作业五:团队项目需求改进与系统设计

    项目 内容 作业所属课程 所属课程 作业要求 作业要求 团队名称 < The One !> 作业学习目标 (1)掌握面向对象需求分析方法:(2)学习软件系统总体结构和数据库逻辑结构设计,学 ...

  7. 《The One!》团队作业4:基于原型的团队项目需求调研与分析

    项目 内容 作业所属课程 所属课程 作业要求 作业要求 团队名称 < The One !> 作业学习目标 (1)体验以原型设计为基础的团队软件项目需求获取技巧与方法.(2)学习利用UML模 ...

  8. 05-Docker私有仓库

    一.介绍私有仓库顾名思义,如果我们不想把docker镜像公开放到公有仓库中,只想在部门或团队内部共享docker镜像,这时私有仓库就来了. 二.私有仓库搭建与配置1.拉取私有仓库镜像,这里说明一下,私 ...

  9. Codeforces Round #597 (Div. 2) D. Shichikuji and Power Grid

    链接: https://codeforces.com/contest/1245/problem/D 题意: Shichikuji is the new resident deity of the So ...

  10. 005__C#修改软件图标

    (一)项目右键属性 (二)应用程序-->图标          图标转换:http://www.faviconico.org/ (三)窗体右键属性更改窗体里面的图标 (四)修改名字