阿月很乖

念念不忘,必有回响

  menu
99 文章
114 评论
152215 浏览
3 当前访客
ღゝ◡╹)ノ❤️

我校资源仓库 使用详解

最近在上 分布式应用系统 的课程,在使用 maven、npm、pip 等这些依赖管理工具的时候,出现了一个很严重的问题,就是我们校园网由于 dns 的问题,造成了下载依赖的时候总是下不全,dns 总是要解析第二遍才能成功,为此,我特地利用学校已有的资源服务器,搭建了我们学校的私服仓库,此篇文章就是如何使用的。

注意:校内私服只有在新校区连接校园网以后才能使用。只连接 wifi ,不用登录校园网也可以使用。


私服介绍

通过 nexus3 搭建校内私服,可以在通过 http://10.100.0.11:5741 进行查看和搜索当前私服已经下载的包和仓库,已经开启匿名访问免登陆,如果发现有下载不全的情况,请联系[email protected] ,有奖励哦~!现在私服仓库如下:

  •  Maven -> 建议配置永久的
  •  Npm -> 建议配置临时的
  •  Pip -> 建议配置临时的
  •  Yum
  •  Epel
  •  Docker

还可以搭建很多,但是都不在计划之内

优点

  1. 内网传输,可靠性高,速度快
  2. 内网无需 DNS 解析,完美解决学校校园网问题(如果使用阿里云或者其他私服,依旧可能出现 DNS 解析或者网络缓慢的问题)
  3. 可以直接搜索和查看 Maven 私服的库

Maven

在这之前

在这之前,你需已经成功安装并配置 maven 环境变量,请通过 mvn -v 检测。并且要拥有 maven 的基础知识,你需要选择性的明白以下内容:

  • 如果你希望全局使用私服,你需要了解 maven 全局配置文件 setting.xml
  • 如果你希望当前项目使用私服,你需要了解当前项目的 maven 配置文件 pom.xml
  • 如果你希望 gradle 项目使用私服,你需要了解当前项目的 gradle 配置文件 build.gradle

maven 私服地址:http://10.100.0.11:5741/repository/maven-public/

**如果你曾经有过未下载完全的依赖,请先删除原来的本地仓库:

  • windows 默认目录 C:/Users/用户名/.m2 的隐藏文件夹,请直接删除,
  • linux 默认目录 /home/用户名/.m2 ,请直接删除
  • 如果你自己在 setting.xml 配置了本地仓库地址,即使用了 localRepository 标签,请找到你指定的文件夹进行删除。**

全局使用私服

你需要找到你当前 maven 的setting.xml 配置文件,找到 <mirrors> 标签,添加如下内容即可:

    <mirror>
      <id>com.gzmu</id>
      <mirrorOf>*</mirrorOf>
      <name>gzmu-maven</name>
      <url>http://10.100.0.11:5741/repository/maven-public/</url>
    </mirror>

**请注意,如果你使用 IDEA 进行项目构建,必须使用以下方式进行构建。在 windows/linux 下你需要进入 File -> Setting -> Build... -> Build Tools -> maven 中,有以下几种方式

  1. 修改 maven 为你 本地的而不是使用内置的,同时修改 User Setting File 为你本地的。
  2. 使用内置的 maven 修改 User Setting File 为你本地的。
  3. 都不修改,找到 User Setting File中的文件(没有就自己加一个或者复制过来)然后添加上面的 配置**。

当前 maven 项目使用私服

如果你使用 maven 进行项目构建,你的 maven 项目根目录下存在一个 pom.xml 依赖管理配置文件,你需要 project 标签下添加子标签如下

    <repositories>
        <repository>
            <id>com.gzmu</id>
            <name>gzmu-maven</name>
            <url>http://10.100.0.11:5741/repository/maven-public/</url>
        </repository>
    </repositories>

当前 gradle 项目使用私服

如果你使用 gradle 进行项目构建,你的 gradle 项目根目录下存在一个 build.gradle 项目构建文件,你需要添加 repositories 闭包,设置仓库地址如下:

    repositories {
        mavenLocal()
        maven { url "http://10.100.0.11:5741/repository/maven-public/"}
        // .... 其它maven中心,以备万一
        mavenCentral()
    }

验证

  1. 使用任何一个 ide,在 maven 项目添加一个依赖,观察右下角依赖下载地址是否为私服地址。
  2. 使用命令行,切换到一个 maven 项目根目录,添加一个依赖,使用 mvn install 进行部署,会自动下载依赖,观察下载地址是否为私服地址。

Npm

在这之前

在这之前,你需已经成功安装并配置 npm 环境变量(Windows 安装版会自动配置),请通过 npm -v 检验,并且你需要具有基础的 npm 知识,你需要选择性的明白以下内容:

  • 如果你希望全局使用私服,你需要了解 npm 全局配置文件 .npmrc或者 命令配置
  • 如果你希望临时使用私服,你需要了解 npm 命令

单个项目中也可以指定使用私服,修改 package.json 配置文件,修改 install 命令,但是非常不友好,故而不做阐述。

全局使用私服

修改配置文件

你需要找到你的 npm 配置文件目录,默认情况下,他存在于 当前用户的家目录 下(如果没有可以自行创建或者通过下一种方式安装),例如

  • windows:C:\Users(用户)\用户名\.npmrc
  • linux/mac:/home/用户名/.npmrc

添加如下配置即可

registry=http://10.100.0.11:5741/repository/npm-publilc/

命令配置

运行如下命令即可

// 配置仓库
npm config set registry http://10.100.0.11:5741/repository/npm-publilc/

// 查看配置
npm config list

他会自动在家目录里面添加上面提到的配置文件

临时使用私服

只需要一个命令即可

npm --registry http://10.100.0.11:5741/repository/npm-publilc install express

请注意,此方法的私服的配置是临时的,将会只对当前命令行有效,一旦关闭,下次使用活打开新的命令行还需要重新修改。

验证

  1. 使用任何一个 ide,在 npm 项目添加一个依赖,观察右下角依赖下载地址是否为私服地址。
  2. 使用命令行,安装整个项目依赖,切换到一个 npm 项目根目录,添加一个依赖,使用 npm -loglevel info install 进行依赖下载,观察下载地址是否为私服地址。
  3. 使用命令行,安装单个全局依赖,例如 npm -loglevel info i -g @vue/cli,观察下载地址是否为私服地址。

Pip

在这之前

在这之前,你需已经成功安装并配置 pip 环境变量(windows 安装版需要注意勾选加入环境变量选项),请通过 pip --version 检测。并且要拥有 pip 的基础知识,你需要选择性的明白以下内容:

  • 如果你希望全局使用私服,命令配置 你的 pip 需要在 10 以上。
  • 如果你希望安装单个库时使用,你需要在每次安装的时候添加参数。

注意,此处我不使用配置文件进行配置,通过配置文件也可以修改,但是因为他的配置不像 npm 一样固定,有些系统是不一样的,所以有需要请自行去查找资料。

全局使用私服

// 配置仓库
pip config set global.index-url http://10.100.0.11:5741/repository/pypi-public/simple

// 添加信任
pip config set install.trusted-host 10.100.0.11

他会输出自动写入的配置文件的位置。

安装单个库

pip install --trusted-host 10.100.0.11 -i http://10.100.0.11:5741/repository/pypi-public/simple 库名

例如

pip install --trusted-host 10.100.0.11 -i http://10.100.0.11:5741/repository/pypi-public/simple flask

Yum

待完成......

Epel

待完成......

Docker

待完成......

总结

使用以上方式,安装依赖速度快很多,因为服务器 DNS 是没有问题的,并且外网速度也比校园网给力的。如果遇到问题请及时和我联系!

其它

Jrebel 激活

除了私服的搭建,我也搭建了 Jrebel 的激活服务,如果有需要的请自取。网页链接

念念不忘,必有回响。

PS:如果觉得文章不错或者帮到了您,帮忙点点下面广告呗~谢谢啦~

评论