Maven私服搭建与项目应用

敬请关注博客,后期不断更新优质博文,谢谢

一、Maven私服搭建步骤

参考博文:

安装nexus步骤

https://blog.csdn.net/yuan_xw/article/details/60376651

https://blog.csdn.net/u010539352/article/details/51722199

deploy命令

https://blog.csdn.net/roy_70/article/details/75267831

上传jar过程报400错误解决:(version版本号,去除snapshoot)

https://blog.csdn.net/running_snail_/article/details/19821777

Linux环境安装Nexus

 

Linux环境安装Nexus

Nexus可以做Maven私服,私服不是Maven的核心概念,它仅仅是一种衍生出来的特殊的Maven仓库。有三种专门的Maven仓库管理软件可以用来帮助大家建立私服:

Apache基金会的ArchivaJFrogArtifacotorySonatypeNexus,Archiva是开源的,ArtifacotoryNexus的核心也是开源的。

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

 

1.1 下载nexus软件

下载nexus安装包之后解压进入nexus目录:

创建文件夹:mkdir -p /usr/local/software/nexus

切换目录:cd /usr/local/software/nexus

wget "https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.3-02-bundle.tar.gz"

tar xfvz nexus-2.14.3-02-bundle.tar.gz

cd nexus-2.14.3-02-bundle

 

     解压之后就会看到两个目录:

         nexus-2.11.4-01:里面是nexus的运行环境和应用程序。

sonatype-work:里面是我们后面要对nexus进行一些配置的地方,像索引和起始的仓库和端口等都可以在这里面配置。

 

1.2 启动nexus

1、配置环境变量

执行命令:

export RUN_AS_USER=root

export JAVA_HOME=/usr/local/software/jdk1.8.0_66

export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar

export PATH=.:$JAVA_HOME/bin:$RUN_AS_USER:$PATH

刷新环境变量:source /etc/profile

 

2、启动nexus

执行命令:

cd /usr/local/software/nexus

nexus-2.14.3-02/bin/nexus start

查看日志:tail -100f/usr/local/software/nexus/nexus-2.14.3-02/logs/wrapper.log

 

1.3 nexus管理界面

1、访问页面:192.168.1.131:8081/nexus

可以看如下界面:

 

注意:nexus的默认端口是8081,后面可以修改。

用默认账户和密码登录

账户:admin

密码:admin123

 

2、界面管理

3rd partySnapshotsReleases这三个,分别用来保存第三方jar、项目组内部的快照、项目组内部的发布版。

 

3、中央仓库自动更新索引

 

4、将第三方jar上传到nexus

 

5、上传之后搜索

这样基本maven私服就搭建完成了,并且上传了自己的jar包。

私服Nexus搭建完毕之后,由于网络原因,有时候会出现索引更新不了的问题,这里给出一种离线更新索引的方式。 

二、下载索引(采用在线下载)

下载索引

nexus索引好比目录,只要我们更新好索引,就可以在nexus系统中去查找,下载我们需要的jar包,并且对应的groupId,artifactId,version都可以方便的查到。如图:

 

刚刚搭建的nexus,索引会是空的,所以需要我们去下载索引。

 

下载索引有两种方式

第一种:在线下载索引。把Centra仓库,点击仓库下面的configuration下把DownloadRemote Indexes修改为true。如下图:

 

然后在Central仓库上右击,选择Pepari Index,这样Nexus就会去下载索引文件。

第二种:离线下载索引。

由于索引文件很大,在线下载会很漫长,所以采用离线下载会很快。从网上找到一个nexus索引仓库包下载下来,如图:

下载完成以后解压,把文件夹中的东西拷贝到sonatype-work/nexus/indexer/central-ctx下面:

 

重新启动一下nexus。

能够很快的把索引下载过来。如图:

如果中间添加了新的jar包想更新索引,点中右击update index就行了。如图:

 

三、项目中配置Nexus仓库

mavensetting.xml文件配置(本地Maven仓库中的配置文件)

 

<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:\Maven\MavenRepository</localRepository> 

 

    <!--私服的验证信息--> 

    <servers> 

        <server> 

            <id>releases</id> 

            <username>admin</username> 

            <password>admin123</password> 

        </server> 

        <server> 

            <id>snapshots</id> 

            <username>admin</username> 

            <password>admin123</password> 

        </server> 

    </servers> 

 

    <!--maven对全部仓库的访问全部拦截到私服的public仓库中去,如果私服关闭,那么久不能访问中央工厂了--> 

    <mirrors> 

        <mirror> 

            <id>nexus</id> 

            <mirrorOf>*</mirrorOf> 

            <name>Local Repository</name> 

              <url>http://10.100.1.145:8081/nexus/content/groups/public</url> 

        </mirror> 

    </mirrors>   

    <!--配置仓库的一些信息,其主要作用是用来覆写central中央仓库的一些配置信息--> 

    <profiles> 

        <profile> 

            <id>central</id> 

            <repositories> 

                <repository> 

                    <id>central</id> 

                    <name>Central</name> 

                    <!-- 该 url 没有意义,可以随便写,但必须有。 --> 

                    <url>http://*</url> 

                    <releases><enabled>true</enabled></releases> 

                    <snapshots><enabled>true</enabled></snapshots> 

                </repository> 

            </repositories> 

            <pluginRepositories> 

                <pluginRepository> 

                    <id>central</id> 

                    <name>local private nexus</name> 

    <url>http://10.100.1.145:8081/nexus/content/groups/public</url> 

                    <releases><enabled>true</enabled></releases> 

                    <snapshots><enabled>true</enabled></snapshots> 

                </pluginRepository> 

            </pluginRepositories> 

        </profile> 

    </profiles> 

 

    <!--激活上面配置的仓库信息--> 

    <activeProfiles> 

        <activeProfile>central</activeProfile> 

    </activeProfiles> 

 

</settings>

 

项目中pom.xml配置 

 

<repositories>
   <repository>
      <id>elastic-lucene-snapshots</id>
      <name>Elastic Lucene Snapshots</name>
      <url>http://s3.amazonaws.com/download.elasticsearch.org/lucenesnapshots/00142c9</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
   </repository>

   <repository> <!-- 发布版本仓库 -->
      <id>releases</id>
      <name>Nexus Release Repository</name>
      <url>http://10.100.1.145:8081/nexus/content/repositories/releases/</url>
   </repository>

   <repository> <!-- 快照版本仓库 -->
      <id>snapshots</id>
      <name>Nexus Snapshot Repository</name>
      <url>http://10.100.1.145:8081/nexus/content/repositories/snapshots/</url>
   </repository>

   <repository> <!--第三方发布版本仓库 -->
      <id>thirdparty</id>
      <name>Nexus Thirdparty Repository</name>
      <url>http://10.100.1.145:8081/nexus/content/repositories/thirdparty/</url>
   </repository>

</repositories>

<!-- 项目部署到私服配置 -->
<distributionManagement> <!-- 远程部署管理信息 -->
   <repository> <!--部署项目产生的构件到远程仓库需要的信息 -->
      <id>releases</id>
      <name>Nexus Release Repository</name>
      <url>http://10.100.1.145:8081/nexus/content/repositories/releases/</url>
   </repository>

   <snapshotRepository> <!-- 如果没有配置该元素,默认部署到repository元素配置的仓库 -->
      <id>snapshots</id>
      <name>Nexus Snapshot Repository</name>
      <url>http://10.100.1.145:8081/nexus/content/repositories/snapshots/</url>
   </snapshotRepository>
 

</distributionManagement>

 四、上传jar包

1、java项目自动上传:

自动将pom中所有依赖包下载并上传到Maven私服中

在terminate窗口执行命令:mvn deploy;

 

 

2、使用deploy命令上传:

mvn deploy:deploy-file -Dmaven.test.skip=true -Dfile=E:\scmd-questionnaire\target\scmd-questionnaire-1.0.jar -DgroupId=scmd-questionnaire -DartifactId=scmd-questionnaire -Dversion=1.0 -Dpackaging=jar -DrepositoryId=releases -Durl=http://10.100.1.145:8081/nexus/content/repositories/releases/

 

// 上传到release中注意版本号不能加snapshoot

欢迎加入Java猿社区
 

已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 点我我会动 设计师:白松林 返回首页