Nexus

167 阅读1分钟

安装

需要jdk8

  1. 解压后,进入目录 /opt/nexus-3.18.0-01/bin,运行 ./nexus run 即可(window执行 ./nexus.exe /run);
  2. 可以把nexus安装成window服务:/nexus.ext /install ,然后使用 net start nexus 启用
  3. 防火墙开通8081端口;
  4. 查看默认密码(账号admin):sonatype-work/nexus3/admin.password,该文件之后运行后才会出现,且仅此一次;

基于docker

# 查看
docker search nexus3
# 拉取
docker pull sonatype/nexus3
# 准备目录
mkdir /opt/nexus/data
chmod 777 -R /opt/nexus
# 运行
docker run -d --name nexus3 -p 8081:8081 --restart always -v /opt/nexus/data:/nexus-data sonatype/nexus3
# 查看日志,ctrl+c 退出
docker logs -f nexus3
# 查看密码
cat /opt/nexus/data/admin-password
# 登录
192.168.10.101:8081

仓库配置

阿里云仓库: maven.aliyun.com/repository/…

官方云仓库:repo.maven.apache.org/maven2

  1. 新建maven-proxy仓库,并设置阿里云仓库地址
  2. 修改maven-public,把新建的仓库添加进去

Settings配置

文件搜索顺序

local_repo > settings_profile_repo > pom_profile_repo > pom_repositories > settings_mirror > central

  1. 添加server账号配置
<server>
  <id>maven-releases</id>
  <username>admin</username>
  <password>123456</password>
</server>
<server>
  <id>maven-snapshots</id>
  <username>admin</username>
  <password>123456</password>
</server>
<server>
  <id>maven-public</id>
  <username>admin</username>
  <password>123456</password>
</server>

  1. 添加mirror配置
      <mirror>
        <!--id 和 server的id要一致-->
        <id>maven-public</id>
        <mirrorOf>central</mirrorOf>
        <name>dy maven</name>
        <url>http://192.168.10.101:8081/repository/maven-public</url>
      </mirror>

Pom设置

用于部署到远程仓库。

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

如果项目版本是1.0-SNAPSHOT会默认发布到snapshot仓库;

如果是1.0,会默认发布到release仓库;

为了减少发布时手动修改版本,可结合profiles设定:

<version>${project.release.version}</version>
<properties>
        <project.release.version>0.1-SNAPSHOT</project.release.version>
</properties>

 <profiles>
     <profile>
         <id>release</id>
         <properties>
              <project.release.version>0.1</project.release.version>
         </properties>
     </profile>
 </profiles>

执行maven时,如果选择release(或执行mvn deploy -P release),则版本号会自动替换并发布到对应的仓库。