繁琐的任务简单化——Maven搭建Nexus私有仓库

一、使用Docker安装Nexus


Docker search nexus

docker pull docker.io/sonatype/nexus3

mkdir -p /usr/local/nexus3/nexus-data

chown -R 200 /usr/local/nexus3/nexus-data

docker run -tid -p 8081:8081 --name nexus -e NEXUS_CONTEXT=nexus -v /usr/local/nexus3/nexus-data:/nexus-data  docker.io/sonatype/nexus3

  现在已经安装完成了 nexus。

二、登录Nexus进行配置

1、登录nexus

访问:http://ip:8081/nexus使用默认管理员身份登录,帐号:admin,密码:admin123

 2、进入管理界面


Browse可以查看当前有多少仓库,搭建好的Nexus,默认会带有一些maven仓库,一般使用这些仓库就足够了。

默认仓库说明    

          maven-central:maven中央库,默认从https://repo1.maven.org/maven2/拉取jar

          maven-releases:私库发行版jar,初次安装请将Deployment policy设置为Allow redeploy

          maven-snapshots:私库快照(调试版本)jar

          maven-public:仓库分组,把上面三个仓库组合在一起对外提供服务,在本地maven基础配置settings.xml或项目pom.xml中使用

仓库类型    

Group:这是一个仓库聚合的概念,用户仓库地址选择Group的地址,即可访问Group中配置的,用于方便开发人员自己设定的仓库。maven-public就是一个Group类型的仓库,内部设置了多个仓库,访问顺序取决于配置顺序,3.x默认Releases,Snapshots,                                  Central,当然你也可以自己设置。

Hosted:私有仓库,内部项目的发布仓库,专门用来存储我们自己生成的jar文件

3rd party:未发布到公网的第三方jar (3.x去除了)

Snapshots:本地项目的快照仓库

Releases: 本地项目发布的正式版本

Proxy:代理类型,从远程中央仓库中寻找数据的仓库(可以点击对应的仓库的Configuration页签下Remote Storage属性的值即被代理的远程仓库的路径),如可配置阿里云maven仓库

Central:中央仓库

Apache Snapshots:Apache专用快照仓库(3.x去除了)

 3、增加新的代理源

             第一步 按照步骤添加新的代理源

             第二步选择添加maven2的代理

            第三步添加代理(Cache统一设置为200天 288000)

           第四步逐个增加常用代理

1. aliyun

http:

//maven.aliyun.com/nexus/content/groups/public

2. apache_snapshot

https:

//repository.apache.org/content/repositories/snapshots/

3. apache_release

https://repository.apache.org/content/repositories/releases/

4. atlassian

https://maven.atlassian.com/content/repositories/atlassian-public/

5. central.maven.org

http://central.maven.org/maven2/

6. datanucleus

http://www.datanucleus.org/downloads/maven2

7. maven-central (安装后自带,仅需设置Cache有效期即可)

https://repo1.maven.org/maven2/

8. nexus.axiomalaska.com

http://nexus.axiomalaska.com/nexus/content/repositories/public

9. oss.sonatype.org

https://oss.sonatype.org/content/repositories/snapshots

10.pentaho

https://public.nexus.pentaho.org/content/groups/omni/

              第五步 设置maven-public 将这些代理加入Group,最好将默认的maven库放到最底下

               第六步 设置私用仓库可重复发布

                 Nexus安装后自带maven-releases,maven-snapshots两个仓库,用于将生成的jar包发布在这两个仓库中,在实际开发中需要将maven-releases设置为可以重复发布

4、Maven配置使用Nexus

        修改.m2下面的setting.xml文件配置



Licensed to the Apache Software Foundation (ASF) under one

or more contributor license agreements.  See the NOTICE file

distributed with

thisworkforadditional information

regarding copyright ownership.  The ASF licenses

thisfile

to you under the Apache License, Version

2.0(the

"License"); you may not usethisfile exceptincompliance

with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,

software distributed under the License is distributed on an

"AS IS"BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY

KIND, either express or implied.  See the License for the

specific language governing permissions and limitations

under the License.

-->


| Thisisthe configuration fileforMaven. It can be specified at two levels:

|

|1. User Level. This settings.xml file provides configurationfora single user,

|                andisnormally providedin${user.home}/.m2/settings.xml.

|

|NOTE: This location can be overridden with the CLI option:

|

|                -s /path/to/user/settings.xml

|

|2. Global Level. This settings.xml file provides configurationforall Maven

|                users on a machine (assuming they're all using the same Maven

|                installation). It's normally provided in

|                ${maven.conf}/settings.xml.

|

|NOTE: This location can be overridden with the CLI option:

|

|                -gs /path/to/global/settings.xml

|

| The sectionsinthissample file are intended to give you a running start at

| getting the mostoutof your Maven installation. Where appropriate, thedefault

| values (values used when the settingisnot specified) are provided.

|

|-->

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">


|The path to the local repository maven will use to store artifacts.

|

| Default: ${user.home}/.m2/repository

-->

${user.home}/.m2/repository


| This will determine whether maven prompts you when it needs input. Ifsettofalse,

| maven will use a sensibledefaultvalue, perhaps based on some other setting,for

| the parameterinquestion.

|

| Default:true

true

-->


|Determines whether maven should attempt to connect to the network when executing a build.

|This will have an effect on artifact downloads, artifact deployment, and others.

|

| Default:false

false

-->


| Thisisa list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e.

| when invoking a command line like"mvn prefix:goal". Maven will automatically add the group identifiers

|"org.apache.maven.plugins"and"org.codehaus.mojo"ifthese are not already containedinthe list.

|-->


| Specifies a further group identifier to useforplugin lookup.

com.your.plugins

-->


| Thisisa list of proxies which can be used onthismachine to connect to the network.

| Unless otherwise specified (by system property or command-lineswitch), the first proxy

| specificationinthislist markedasactive will be used.

|-->


| Specificationforone proxy, to be usedinconnecting to the network.

|

optional

true

http

proxyuser

proxypass

proxy.host.net

80

local.net|some.host.com

-->


| Thisisa list of authentication profiles, keyed by the server-id used within the system.

|Authentication profiles can be used whenever maven must make a connection to a remote server.

|-->


|Specifies the authentication information to use when connecting to a particular server, identified by

| a unique name within the system (referred to by the'id'attribute below).

|

| NOTE: You should either specify username/password OR privateKey/passphrase, since these pairings are

|used together.

|

-->

releases

admin

admin23

snapshots

admin

admin123


siteServer

/path/to/private/key

optional; leave emptyifnot used.

-->


| Thisisa list of mirrors to be usedindownloading artifactsfromremote repositories.

|

| It works likethis: a POM may declare a repository to useinresolving certain artifacts.

| However,thisrepository may have problems with heavy traffic at times, so people have mirrored

|it to several places.

|

| That repository definition will have a unique id, so we can create a mirror referenceforthat

| repository, to be usedasan alternate download site. The mirror site will be the preferred

| serverforthat repository.

|-->


|Specifies a repository mirror site to use instead of a given repository. The repository that

|thismirror serves has an ID that matches the mirrorOf element ofthismirror. IDs are used

|forinheritance and direct lookup purposes, and must be unique across thesetof mirrors.

|

-->

HolliParkMirror

*

HolliPark Repository Mirror.

http://localhost:8082/nexus/repository/maven-public/</url>


| Thisisa list of profiles which can be activatedina variety of ways, and which can modify

| the build process. Profiles providedinthe settings.xml are intended to provide local machine-

| specific paths and repository locations which allow the build to workinthe local environment.

|

| For example,ifyou have an integration testing plugin - like cactus - that needs to knowwhere

| your Tomcat instanceisinstalled, you can provide a variable here such that the variableis

|dereferenced during the build process to configure the cactus plugin.

|

| As noted above, profiles can be activatedina variety of ways. One way -the activeProfiles

| section ofthisdocument (settings.xml) -will be discussed later. Another way essentially

| relies on the detection of a system property, either matching a particular valueforthe property,

| or merely testing its existence. Profiles can also be activated by JDK version prefix,wherea

| value of'1.4'might activate a profile when the buildisexecuted on a JDK version of'1.4.2_07'.

| Finally, the list of active profiles can be specified directlyfromthe command line.

|

| NOTE: For profiles definedinthe settings.xml, you are restricted to specifying only artifact

|      repositories, plugin repositories, and free-form properties to be usedasconfiguration

|      variablesforpluginsinthe POM.

|

|-->

HolliPark

nexus

Public Repositories

http://localhost:8082/nexus/repository/maven-public/</url>

true

central

Central Repositories

http://localhost:8082/nexus/repository/maven-central/</url>

true

false

release

Release Repositories

http://localhost:8082/nexus/repository/maven-releases/</url>

true

false

snapshots

Snapshot Repositories

http://localhost:8082/nexus/repository/maven-snapshots/</url>

true

true

plugins

Plugin Repositories

http://localhost:8082/nexus/repository/maven-public/</url>


| Specifies asetof introductions to the build process, to be activatedusingone or more of the

| mechanisms described above. For inheritance purposes, and to activate profiles via

| or the command line, profiles have to have an ID thatisunique.

|

| An encouraged best practiceforprofile identificationisto use a consistent naming convention

|forprofiles, suchas'env-dev','env-test','env-production','user-jdcasey','user-brett', etc.

| This will make it more intuitive to understand what thesetof introduced profilesisattempting

| to accomplish, particularly when you only have a list of profile id's for debug.

|

| This profile example uses the JDK version to trigger activation, and provides a JDK-specific repo.

jdk-1.4

1.4

jdk14

RepositoryforJDK1.4builds

http://www.myhost.com/maven/jdk14</url>

default

always

-->


| Hereisanother profile, activated by the system property'target-env'with a value of'dev',

| which provides a specific path to the Tomcat instance. To usethis, your plugin configuration

|might hypothetically look like:

|

|...

|

|  org.myco.myplugins

|  myplugin

|

|    ${tomcatPath}

|

|...

|

| NOTE: If you just wanted to injectthisconfiguration whenever someoneset'target-env'to

|      anything, you could just leave off the inside the activation-property.

|

env-dev

target-env

dev

/path/to/tomcat/instance

-->


| List of profiles that are activeforall builds.

|

alwaysActiveProfile

anotherAlwaysActiveProfile

-->

HolliPark

三、创建私有公库

 1、创建普通的maven项目

  2、修改项目的pom.xml

在pom文件中加入distributionManagement节点,注意:pom.xml中repository里的id需要和.m2中setting.xml里的server id名称保持一致

releases

Nexus Release Repository

http://localhost:8082/nexus/repository/maven-releases/

snapshots

Nexus Snapshot Repository

http://localhost:8082/nexus/repository/maven-snapshots/

3、发布私有公库

                            执行部署命令即可发布。

mvn deploy

                            登录Nexus,查看对应的仓库已经有相关的依赖包了


         注意以下几点:         

 若项目版本号末尾带有 -SNAPSHOT,则会发布到snapshots快照版本仓库

 若项目版本号末尾带有 -RELEASES 或什么都不带,则会发布到releases正式版本仓库

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,033评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,725评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,473评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,846评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,848评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,691评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,053评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,700评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,856评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,676评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,787评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,430评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,034评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,990评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,218评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,174评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,526评论 2 343

推荐阅读更多精彩内容