008Maven_建立私服

参考博客:http://blog.csdn.net/fengspg/article/details/22507737

 

.1. Maven私服

关于中央仓库注意事项

l  地址: 目前来说: http://repo1.maven.org/maven2/是真正的Maven中央仓库的地址,该地址内置在Maven的源码中其他的都是镜像

l  索引: 中央仓库带有索引文件以方便用户对其进行搜索,完整的索引文件大小约为60M,索引每周更新一次

l  黑名单: 如果某个IP地址恶意的下载中央仓库内容,例如全公司100台机器使用同一个IP反复下载,这个IP(甚至是IP段)会进入黑名单,因此稍有规模的使用Maven时,应该用Nexus架设私服

为什么需要私服

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

建立私服:

1.1.1.      Nexus环境搭建

第一步:下载nexus-webapp-1.9.2.4.war包,然后拷贝到tomcat下的webapps目录中

第二步:启动tomcat 默认登录账户密码为: admin  admin123 

第三步:访问http://localhost:8080/项目名称/

1.1.2.      认识repository

Nexus仓库的默认的地址, nexus-2.1.2\WEB-INF\plexus.properties 中定义的

在Views/Repositories-->Repositories里进行配置, nexus里可以配置3种类型的仓库,分别是proxy、hosted、group

proxy:是远程仓库的代理。比如说在nexus中配置了一个central repository的proxy,当用户向这个proxy请求一个artifact,这个proxy就会先在本地查找,如果找不到的话,就会从远程仓库下载,然后返回给用户,相当于起到一个中转的作用

Hosted:是宿主仓库,用户可以把自己的一些构件,deploy到hosted中,也可以手工上传构件到hosted里。比如说oracle的驱动程序,ojdbc6.jar,在central repository是获取不到的,就需要手工上传到hosted里

Group:是仓库组,在maven里没有这个概念,是nexus特有的。目的是将上述多个仓库聚合,对用户暴露统一的地址,这样用户就不需要在pom中配置多个地址,只要统一配置group的地址就可以了右边那个Repository Path可以点击进去,看到仓库中artifact列表。不过要注意浏览器缓存。我今天就发现,明明构件已经更新了,在浏览器里却看不到,还以为是BUG,其实是被浏览器缓存了

virtual:也是中央仓库镜像,支持M1老版本

Central Repository

最关键的一个配置, 就是Central Repository的proxy配置,因为大部分的构件,都是要通过这个proxy得到的,

配置Hosted Repository

一般会配置3个hosted repository, 分别是3rd party、Snapshots、Releases,分别用来保存第三方jar(典型的比如ojdbc6.jar),项目组内部的快照、项目组内部的发布版, 这里并没有什么特别的配置,只是Deployment Policy这个选项,一般Snapshots会配置成允许,而Releases和3rd party会设置为禁止

配置group repository

前面说过group其实是一个虚拟的仓库, 通过对实体仓库(proxy、hosted)进行聚合, 对外暴露一个统一的地址这里要注意的是,放到左边的仓库,才是会被聚合的仓库

---------------------------------------------------------------------------------------------------------------------

从私服中下载资源

l  可以在支持Maven的项目中进行如下配置

<repositories>
     <repository>
         <id>shop</id>
         <name>仓库介绍</name>
     <url>http://localhost:8080/nexus-2.1.2/content/groups/public/</url>
     </repository>
 </repositories>
 <pluginRepositories>
     <pluginRepository>
         <id>plugin</id>
         <name>插件下载地址</name>
     <url>http://localhost:8080/nexus-2.1.2/content/groups/public/</url>
     </pluginRepository>
 </pluginRepositories>

l  也可以把地址配置在setting.xml的<profiles>标签中这样对所有项目都生效

<profiles>
      <repositories>
        <repository>
            <id>shop</id>
            <name>仓库介绍</name>
    <url>http://localhost:8080/nexus-2.1.2/content/groups/public/</url>
        </repository>
    </repositories>
    <pluginRepositories>
          <pluginRepository>
              <id>plugin</id>
              <name>插件下载地址</name>        <url>http://localhost:8080/nexus-2.1.2/content/groups/public/</url>
          </pluginRepository>
    </pluginRepositories>
 </profiles>

l  把本地项目提交到私服中

<distributionManagement>
        <repository>
            <!-- 要在个人的setting.xml中配置上传的密码 -->
            <id>snapshots</id>
            <name>snapshots 测试版</name>
            <!-- nexus中查找相应的地址-->
            <url>http://localhost:8080/nexus/content/repositories
            /snapshots/</url>
        </repository>
</distributionManagement>

<servers>
    <!-- 在.m2\setting.xml中 配置了要上传仓库的密码 -->
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
  </servers>

有一个问题:私服配置不成功。一直没解决。

时间: 2024-10-03 13:09:47

008Maven_建立私服的相关文章

10 Maven-使用NEXUS创建私服

10.1 简介 私服:通过建立自己的私服,就可以降低中央仓库的负荷.节省外网带宽.加速Maven构建.自己部署构件等,从而高效的使用Maven. 有三种专门的Maven仓库管理软件可以用来帮助搭建建立私服,从而高效的使用Maven. Apache基金会的Archiva.JForg的Artifactory和Sonatype的Nexus.其中,Archiva是开源的,而Artifactory和Nexus的核心也是开源的. 10.2 安装Nexus Nexus是典型的Java Web应用,它有两种安装

使用Maven私服的好处

1.Maven仓库的分类 本地仓库:当Maven执行编译或测试时,如果需要使用到依赖文件,它总是基于坐标使用本地仓库的依赖文件.默认情况下,不管Linux还是Windows,每个用户在自己的用户目录下都有一个路径名为.m2/respository/的仓库目录. 远程仓库:安装好Maven后,如果不执行任何Maven命令,本地仓库的目录是不存在的.当用户输入第一条Maven命令后,Maven才会创建本地仓库,然后根据配置和需要从远程仓库下载依赖的构建到本地仓库. 中央仓库:由于最原始的本地仓库是空

(十五)使用Nexus创建Maven私服

通过建立自己的私服,就可以降低中央仓库负荷.节省外网宽带.加速Maven构建.自己部署构件等,从而高效的使用Maven.有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:Apache基金会的Archiva.JFrog的Artifactory和Sonatype的Nexus.个人只使用过Sonatype的Nexus,目前来说,应该也是当前最流行的Maven仓库管理软件. 1.Nexus简单介绍 Nexus分为开源版和专业版,其中开源版本基于GPLv3许可证,其特性足以满足大部分Maven用

部署Maven与Nexus(私服)

博文大纲:一.Maven简介1)Maven的功能:2)Maven使用场景(从运维人员的角度来看):3)Maven仓库二.部署Maven1)配置jdk环境2)部署Maven三.部署Nexus私服1)Nexus简介2)部署Nexus四.Maven配置nexus私服,将远程仓库设置成本地搭建的Nexus私服1)修改maven的主配置文件2)创建一个maven项目进行测试3)配置认证,将打包好的项目上传到nexus中4)上传到maven-release仓库5)上传第三方maven 一.Maven简介 M

有关使用Maven常见问题总结(Eclipse中使用Maven、Maven项目部署到tomcat等问题)

最近一些项目需要让Maven来管理,一种情况是将之前的eclipse的Java Project项目和Web project 加入Maven管理,还有一种情况是,将SVN上的Maven项目拉到本地,在eclipse中使用时遇到的一些棘手问题,问题过程和解决具体方案如下: 1.在eclipse中安装maven插件后启动eclipse时,会遇到如下警告: The Maven Integration requires that Eclipse be running in a JDK, because a

【转】【项目管理与构建】Maven

在现实的企业中,以低成本.高效率.高质量的完成项目,不仅仅需要技术大牛,企业更加需要管理大牛,管理者只懂技术是远远不够的.当然,管理可以说有很多的方面,例如:对人员的管理,也有对项目的管理等等.如果你想成为一个优秀的管理者,你必须得会使用高大上的管理工具. 从这篇博文开始,我会给大家介绍更多的项目管理工具,经过点点滴滴的积累,不断的进步,最终成为管理大牛. 简介 我先看一下Apache官网的解释: [java] view plain copy print? Apache Maven is a s

(二)Maven 基本概念——依赖、生命周期、仓库管理、聚合&amp;继承

1. 依赖配置 1.1 依赖配置主要包含如下元素: <!--添加依赖配置--> <dependencies> <!--项目要使用到junit的jar包,所以在这里添加junit的jar包的依赖--> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.9</version> <

Maven整理笔记のMaven仓库

Maven坐标和依赖是任何一个构件在Maven世界中的逻辑表示方式:而构件的物理表示方式是文件,Maven通过仓库来统一管理这些文件.  Maven仓库 在Maven的世界中,任何一个依赖.插件或者项目构建的输出,都可以称为一个构件.如项目依赖log4j-1.2.15.jar是一个构件,插件maven-compiler-plugin-2.0.3.jar是一个构件,我们自己的Maven项目构建完成后的输出.jar/war文件也是一个构件.任何一个构件都有一组坐标唯一标识.在我们项目开发中,往往可能

maven小试牛刀

Maven是一个采用纯Java编写的开源项目管理工具.Maven采用了一种被称之为project object model (POM)概念来管理项目,所有的项目配置信息都被定义在一个叫做POM.xml的文件中,通过该文件,Maven可以管理项目的整个声明周期,包括编译,构建,测试,发布,报告等等.目前Apache下绝大多数项目都已经采用Maven进行管理.而Maven本身还支持多种插件,可以方便更灵活的控制项目. 构建 理解maven的第一步我们需要知道构建是什么?<maven实战>这本书里写