Nexus 3.19.1

Nexus 3.19.1

文档https://help.sonatype.com/learning/repository-manager-3

wget https://sonatype-download.global.ssl.fastly.net/nexus/3/latest-unix.tar.gz

tar -zvxf nexus-3.19.1-01-unix.tar.gz -C /usr/local/

vi /etc/profile

export JAVA_HOME=/usr/local/jdk1.8.0_231
export NEXUS_HOME=/usr/local/nexus/nexus-3.19.1-01
export PATH=$PATH:$JAVA_HOME/bin:$NEXUS_HOME/bin


source /etc/profile

nexus -v

[root@VM_0_8_centos opt]# nexus -v       
WARNING: ************************************************************
WARNING: Detected execution as "root" user.  This is NOT recommended!
WARNING: ************************************************************
Usage: /usr/local/nexus/nexus-3.19.1-01/bin/nexus {start|stop|run|run-redirect|status|restart|force-reload}

在bin目录下和启动程序nexus同级 vi nexus 493行
run_as_root=false

通过从命令行运行文件nexus来启动NXRM
nexus run
[root@VM_0_8_centos bin]# nexus run         
Java HotSpot(TM) 64-Bit Server VM warning: INFO: os::commit_memory(0x000000074f550000, 1890254848, 0) failed; error='Cannot allocate memory' (errno=12)
#
# There is insufficient memory for the Java Runtime Environment to continue.
# Native memory allocation (mmap) failed to map 1890254848 bytes for committing reserved memory.
# An error report file with more information is saved as:
# /usr/local/nexus/nexus-3.19.1-01/hs_err_pid11022.log
内存不足

vi nexus.vmoptions		虚拟机配置

使用run命令启动存储库管理器将使其在当前shell中运行并显示日志输出。

启动,完成后,日志文件将显示一条消息“ Started Sonatype Nexus”
打开浏览器,然后输入URL:http:// localhost:8081 /。显示Nexus Repository Manager欢迎屏幕。

首次登录NXRM将使用默认的用户名和密码 默认用户名“ admin ”和默认密码“ admin123”
Your admin user password is located in
/usr/local/nexus/sonatype-work/nexus3/admin.password on the server.



由于访问中央仓库有时候会比较慢,这里我添加一个阿里云的代理仓库,然后优先级放到默认中央库之前,, 阿里云的maven仓库url为http://maven.aliyun.com/nexus/content/groups/public
在这里插入图片描述

然后在maven-public组里面讲这个aliyun-proxy仓库加入,排在maven-central之前即可。
在这里插入图片描述

本地Maven使用私服

在maven的默认配置settings.xml中

<servers>
    <server>
      <id>maven-releases</id>
      <username>admin</username>
      <password>admin123</password>
    </server>
    <server>
      <id>maven-snapshots</id>
	  <username>admin</username>
      <password>admin123</password>
    </server>
  </servers>
<mirrors>
    <mirror>
        <id>nexus3</id>
        <mirrorOf>*</mirrorOf>
        <url>http://122.51.144.43:8081/repository/maven-public/</url>
    </mirror>
</mirrors>
<profiles>
<profile>
<id>nexus3</id>
<repositories>
    <repository>
        <id>maven-public</id>
        <url>http://122.51.144.43:8081/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
        </snapshots>
    </repository>
</repositories>
<pluginRepositories>
    <pluginRepository>
        <id>maven-public</id>
        <url>http://122.51.144.43:8081/repository/maven-public/</url>
        <releases>
            <enabled>true</enabled>
        </releases>
        <snapshots>
            <enabled>true</enabled>
            <updatePolicy>always</updatePolicy>
        </snapshots>
    </pluginRepository>
</pluginRepositories>
</profile>
</profiles>
<activeProfiles>
	<activeProfile>nexus3</activeProfile>
 </activeProfiles>

如果要发布自己的jar到私服,就需要修改工程的pom.xml,添加如下内容,否则什么都不用做:

<distributionManagement>
    <repository>
        <id>maven-releases</id>
        <name>maven-snapshots</name>
        <url>http://122.51.144.43:8081/repository/maven-releases/</url>
    </repository>
    <snapshotRepository>
        <id>maven-snapshots</id>
        <name>maven-snapshots</name>
        <url>http://122.51.144.43:8081/repository/maven-snapshots/</url>
    </snapshotRepository>
</distributionManagement>


注意上面的repository的id值一定要跟settings.xml文件中配置的server一致。

上传到Nexus上,使用 mvn deploy 即可,开发的时候请使用snapshot版本,也就是version的后缀必须是-SNAPSHOT。

注:
maven里的mirror和repository

repository就是直接配置站点地址,mirror则是作为站点的镜像,代理某个或某几个站点的请求,实现对repository的完全代替。

repository

可以配置多个repository:
1.配置多个profile,需要配置activeProfiles使配置生效。
2.在同一个profile中配置多个repository。
实现了多站点的配置。下载依赖时,maven会按照配置从上到下的顺序,依次尝试从各个地址下载,成功下载为止。

mirror

默认情况下配置多个mirror的情况下,只有第一个生效。

mirrorOf 标签

mirrorOf 标签里面放置的是 repository 配置的 id,为了满足一些复杂的需求,Maven还支持更高级的镜像配置:

external:* = 不在本地仓库的文件才从该镜像获取
repo,repo1 = 远程仓库 repo 和 repo1 从该镜像获取
*,!repo1 =  所有远程仓库都从该镜像获取,除 repo1 远程仓库以外
* = 所用远程仓库都从该镜像获取

配置nexus之类私服,可以直接配置成repository, 这样即使配置的这些仓库有些问题导致一些包下不下来,也可以继续用别的仓库尝试。

附:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/4.0.0"
          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
          xsi:schemaLocation="http://maven.apache.org/SETTINGS/4.0.0 http://maven.apache.org/xsd/settings-4.0.0.xsd">
    <localRepository>D:\maven-repository</localRepository>
    <offline>false</offline>
    <servers>
        <server>
            <id>public</id>
            <username>developer</username>
            <password>xx</password>
        </server>
        <server>
            <id>releases</id>
            <username>developer</username>
            <password>xx</password>
        </server>
        <server>
            <id>snapshots</id>
            <username>developer</username>
            <password>xx</password>
        </server>
        <server>
            <id>maven-releases</id>
            <username>admin</username>
            <password>xx</password>
        </server>
        <server>
            <id>maven-snapshots</id>
            <username>admin</username>
            <password>xx</password>
        </server>
    </servers>
    <mirrors>
        <mirror>
            <id>nexus-aliyun</id>
            <name>Nexus aliyun</name>
            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
        <mirror>
            <id>nexus-Maven</id>
            <name>Nexus Maven</name>
            <url>http://central.maven.org/maven2/</url>
            <mirrorOf>central</mirrorOf>
        </mirror>
    </mirrors>

    <profiles>
        <profile>
            <id>dev</id>
            <repositories>
                <repository>
                    <id>public</id>
                    <url>http://xx.xx.xx.xx/nexus/content/groups/public/</url>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>public</id>
                    <url>http://xx.xx.xx.xx/nexus/content/groups/public/</url>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
        <profile>
            <id>nexus3</id>
            <repositories>
                <repository>
                    <id>maven-public</id>
                    <url>http://xx.xx.xx.xx:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                        <updatePolicy>always</updatePolicy>
                    </snapshots>
                </repository>
            </repositories>
            <pluginRepositories>
                <pluginRepository>
                    <id>maven-public</id>
                    <url>http://xx.xx.xx.xx:8081/repository/maven-public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </pluginRepository>
            </pluginRepositories>
        </profile>
    </profiles>

    <activeProfiles>
        <activeProfile>dev</activeProfile>
        <activeProfile>nexus3</activeProfile>
    </activeProfiles>
</settings>


编译 + source 源码
<build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5.1</version>
                <configuration>
                    <source>${java.version}</source>
                    <target>${java.version}</target>
                    <encoding>${java.encoding}</encoding>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <configuration>
                    <attach>true</attach>
                </configuration>
                <executions>
                    <execution>
                        <phase>compile</phase>
                        <goals>
                            <goal>jar</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

上传到私服
mvn -DskipTests=true deploy
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值