maven 搭建私服

前言:

  公司一般都有个自己的私服来管理各种jar包,原因大概有这么3个,分别是:

    1、有的公司不能访问外网,只能通过私服来管理jar包和插件;

    2、公司网速比较慢,通过公司的私服来获取jar包比较快;

    3、内部的的一些jar包放在私服上,比较方便的大家使用。

1 . 私服简介

    私服是架设在局域网的一种特殊的远程仓库,目的是代理远程仓库及部署第三方构件。有了私服之后,当 Maven 需要下载构件时,直接请求私服,私服上存在则下载到本地仓库;

    否则,私服请求外部的远程仓库,将构件下载到私服,再提供给本地仓库下载。

2 . 安装Nexus

    2.1 :Nexus 专业版是需要付费的,这里我们下载开源版 Nexus OSS。Nexus 提供两种安装包,一种是包含 Jetty 容器的 bundle 包,另一种是不包含容器的 war 包(本人下载的是包含jetty容器的)。下载地址:http://www.sonatype.org/nexus/go

    2.2:解压安装包

2.3:进入D:\Program Files\nexus-2.14.4-03-bundle\nexus-2.14.4-03\bin\jsw;根据自己的系统选择

  2.4: 执行console-nexus.bat,(注:console-nexus.bat仅启动,install-nexus.bat 将Nexus安装为Windows服务。可将服务启动方式设为手动,以后通过 nexus start 即可启动Nexus ,通过 nexus stop 退出Nexus:

  2.5:打开浏览器,访问:http://127.0.0.1:8081/nexus/ (Jetty 默认端口号:8081):

3 . Nexus预置的仓库

点击左侧菜单 Repositories 链接,查看 Nexus 内置的仓库:

Nexus 的仓库分为这么几类:

  • hosted 宿主仓库:主要用于部署无法从公共仓库获取的构件以及自己或第三方的项目构件( 3rd party 放置无法从中央仓库获取的构件,如:oracle 的 JDBC 驱动;Releases 仓库 放置自己开发一些不稳定的项目版本;Snapshots 仓库放置自己开发的稳定项目版本  );
  • proxy 代理仓库:代理公共的远程仓库;
  • virtual 虚拟仓库:用于适配 Maven 1;
  • group 仓库组:Nexus 通过仓库组的概念统一管理多个仓库,这样我们在项目中直接请求仓库组即可请求到仓库组管理的多个仓库

3.2:添加仓库到仓库组

4:eclipse 配置私服并使用

  4.1:setting.xml文件添加如下设置

  

<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
        <localRepository>E:\maventenst</localRepository>
        <!--配置服务端的一些设置。一些设置如安全证书不应该和pom.xml一起分发。这种类型的信息应该存在于构建服务器上的settings.xml文件中。 -->
    <servers>
        <server>
            <!--该id与distributionManagement中repository元素的id相匹配。 -->
            <id>test-repository</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server>
        <server>
            <!--该id与distributionManagement中repository元素的id相匹配。 -->
            <id>test-snapshotRepository</id>
            <username>deployment</username>
            <password>deployment123</password>
        </server>
    </servers>
     <!--为仓库列表配置的下载镜像列表。高级设置请参阅镜像设置页面 -->
    <mirrors>
        <mirror>
            <!--唯一标识符,区分不同的mirror元素 -->
            <id>nexus</id>
            <!--被镜像的服务器的id。例如,如果我们要设置了一个Maven中央仓库(http://repo.maven.apache.org/maven2/)的镜像,就需要将该元素设置成central。这必须和中央仓库的id central完全一致。 -->
            <mirrorOf>central</mirrorOf>
            <!--镜像名称 -->
            <name>test-center</name>
            <!--该镜像的URL。构建系统会优先考虑使用该URL,而非使用默认的服务器URL,就是下载jar包的路径 -->
            <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
        </mirror>
    </mirrors>
    <!--根据环境参数来调整构建配置的列表。settings.xml中的profile元素是pom.xml中profile元素的裁剪版本。这里的profile元素只关心构建系统这个整体,而非单独的项目对象模型设置。
        如果一个settings中的profile被激活,它的值会覆盖任何其它定义在POM中或者profile.xml中的带有相同id的profile。 -->
    <profiles>
        <profile>
            <id>test-profile</id>
            <!--远程仓库列表,它是Maven用来填充构建系统本地仓库所使用的一组远程项目。 -->
            <repositories>
                <!--包含需要连接到远程仓库的信息 -->
                <repository>
                    <!--远程仓库唯一标识 -->
                    <id>public-snapshots-nexus</id>
                    <!--远程仓库名称 -->
                    <name>public-snapshots</name>
                    <!--如何处理远程仓库里发布版本的下载 -->
                    <releases>
                        <!--true或者false表示该仓库是否开启下载 -->
                        <enabled>true</enabled>
                        <!--该元素指定更新发生的频率。Maven会比较本地POM和远程POM的时间戳。这里的选项是:always(一直),daily(默认,每日),interval:X(这里X是以分钟为单位的时间间隔),never(从不)。 -->
                        <updatePolicy>always</updatePolicy>
                        <!--当Maven验证构件校验文件失败时该怎么做-ignore(忽略),fail(失败),或者warn(警告)。 -->
                        <checksumPolicy>warn</checksumPolicy>
                    </releases>
                    <!--如何处理远程仓库里快照版本的下载。有了releases和snapshots这两组配置,POM就可以在每个单独的仓库中,为每种类型的构件采取不同的策略。例如,可能有人会决定只为开发目的开启对快照版本下载的支持。 -->
                        <snapshots>
                            <enabled>true</enabled>
                        </snapshots>
                    <!--远程仓库URL,按protocol://hostname/path形式 -->
                    <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
                    <!--用于定位和排序构件的仓库布局类型-可以是default(默认)或者legacy(遗留)。Maven2为其仓库提供了一个默认的布局;Maven1.x有一种遗留布局。我们可以使用该元素指定布局是default还是legacy -->
                    <layout>default</layout>
                </repository>
            </repositories>
            <!-- 插件开发库(和上面仓库差不多) -->
            <pluginRepositories>
                <pluginRepository>
                    <id>public-snapshots-nexus</id>
                    <name>public-snapshots</name>
                    <url>http://127.0.0.1:8081/nexus/content/groups/public</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>
    <!-- 表示激活的profile -->
    <activeProfiles>
    <activeProfile>test-profile</activeProfile>
    </activeProfiles>
</settings>

4.2:项目发布 pom设置如下,执行clean deploy 命令发布

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.pqq.maven</groupId>
    <artifactId>ssm-api</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>ssm-api</name>
    <url>http://maven.apache.org</url>
    <distributionManagement>
    <!-- 发布 发布版 -->
        <repository>
            <id>test-repository</id>
            <name>test repository name</name>
            <url>http://127.0.0.1:8081/nexus/content/repositories/releases/</url>
        </repository>
        <!-- 发布 快照版 -->
        <snapshotRepository>
            <id>test-snapshotRepository</id>
            <name>test snapshotRepository name</name>
            <url>http://127.0.0.1:8081/nexus/content/repositories/snapshots/</url>
        </snapshotRepository>
    </distributionManagement>

    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

</project>
时间: 2024-10-02 18:26:55

maven 搭建私服的相关文章

三种Maven搭建私服的管理软件

Artifactory搭建maven私服 1 概 述 在我们的项目开发中通常希望将很多公用的东西提成一个工具工程,然后这个工程可以以maven依赖的形式让其他项目进行添加.这就是以使用Artifactory来建立maven私服. 2具体步骤 (1)下载Artifactory.下载地址:Artifactory (2)直接解压下载好的zip文件,并且点击...\artifactory-3.9.2\bin目录下的artifactory.bat进行安装,当出现 #####################

与Nexus为Maven搭建私服

目录 Nexus 的概述 Nexus 安装与部署 Nexus 在 Windows 上安装与使用 安装 使用 Nexus 在 Linux 上安装与使用 Nexus 的概述 引用百度百科一段话 Nexus 是一个强大的 Maven 仓库管理器,它极大地简化了自己内部仓库的维护和外部仓库的访问.利用 Nexus 你可以只在一个地方就能够完全控制访问 和部署在你所维护仓库中的每个 Artifact.Nexus 是一套"开箱即用"的系统不需要数据库,它使用文件系统加 Lucene 来组织数据.N

maven搭建私服

1.安装(Linux版本2.11.4-01) 解压完linux版本会出现两个文件夹 当中nexus-2.11.4-01是开启nexus主文件夹 Sonatype-work 是存放相应的索引,以及jar包的文件夹 2.启动 启动nexus:nexus-2.11.4-01中存在bin文件夹,进入bin文件夹,直接输入命令: ./nexus 指令(start:启动,stop:停止,status:查看状态). 在初始化安装启动时会出现如下提示: 解决方案有两种: 临时:export  RUN_AS_US

maven nexus 私服的搭建学习

之前对maven有过初步的了解与认识,自己也创建过项目使用其来管理,但都是非常粗浅的操作,今天在高人的指点下,也学着在自己的电脑上搭建一个maven私服,虽然技术难度也不高,但为了更深层次的提高,这些基础的工作还是要走一遍的. 说说我自己的理解吧,私服,顾名思义,私有服务器,相对于公有仓库,私服更便于小团队的管理和提高效率,节约带宽,而私服的搭建一般也是在局域网上进行的,项目团队的每个成员从私服上获取资源到本地仓库,若私服没有则会通过连接远程仓库下载到私服上,再到本地仓库.对于个人而言,今天自己

搭建maven artifactory 私服在开发Maven项目的问题

搭建maven artifactory 私服在开发Maven项目. 第一步.安装虚拟机,在虚拟机上安装centos6.5.下载artifactory3.9.2解压开.运行artifactory.sh 默认端口8081,用户名admin,密码password. 可以通过网络访问 http://192.168.1.111:8081/artifactory 请记得要把linux的防火墙关了.service iptables stop. 在自己搭建maven artifactory私服由于网络问题有时无

使用Maven下载依赖包及使用Nexus搭建私服

在项目的搭建过程中,所以很多时候我们需要上网去一个一个找项目的依赖包.这个过程确实是一个效率很低而且很让人恼火的事情. 很多时候能找到对应的官网下载固然是好,但是大部分时候我们都只能在一些第三方网站上下载未知的版本. 所以我们需要一个Maven. Maven使用 Maven核心自带的远程仓库,包括了绝大部分开源构件.我们可以很方便通过Maven提供的坐标机制便捷的下载到你心仪的依赖包. Maven下载.安装 下载地址: http://maven.apache.org/download.html

Linux 使用 Nexus3.x 为 Android 搭建私服

转载请注明出处:http://blog.csdn.net/smartbetter/article/details/55116889 现在Android Studio使用Gradle作为依赖管理工具, 可以说是Android目前最好的依赖管理工具,我们经常通过在build.gradle通过简单的依赖配置就可以使用某个开源项目了,例如okhttp.retrofit,但是如果公司把自己的核心库往jcenter上传又是不太可能的,基于这个问题,今天给大家带来了本篇文章,在强大的Linux平台,使用 Ne

Maven使用私服setting.xml中的配置

Maven使用私服setting.xml中的配置 setting.xml中的配置 使用maven,每次都是从中央仓库下载依赖包,网络很渣,只有使用Nexus搭建个私服. 下面是setting.xml中的配置文件 <?xml version="1.0" encoding="UTF-8"?> <settings xmlns="http://maven.apache.org/SETTINGS/1.0.0" xmlns:xsi=&quo

本地用maven搭建SpringMvc+redis集成

---恢复内容开始--- 首先本地需要搭建私服,简单说一下搭建私服的步骤 1.为什么使用Nexus 如果没有私服,我们所需的所有构件都需要通过maven的中央仓库和第三方的Maven仓库下载到本地,而一个团队中的所有人都重复的从maven仓库下载构件无疑加大了仓库的负载和浪费了外网带宽,如果网速慢的话,还会影响项目的进程.很多情况下项目的开发都是在内网进行的,连接不到maven仓库怎么办呢?开发的公共构件怎么让其它项目使用?这个时候我们不得不为自己的团队搭建属于自己的maven私服,这样既节省了