EchoCow

念念不忘,必有回响。

目录
我校资源仓库 使用详解
/  

我校资源仓库 使用详解 有更新!

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

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


私服介绍

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

  •  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 的激活服务,如果有需要的请自取。网页链接

念念不忘,必有回响。
评论