Sonatype Nexus搭建Maven私服

Nexus简介

Nexus是当前流行的Maven仓库管理软件。

安装Nexus

当前最新版为 3.10.0 .
下载地址: https://help.sonatype.com/repomanager3/download
下载解压后有下面目录:

  • nexus-3.10.0-01 该目录包含Nexus运行需要的文件,启动脚本,依赖jar包等。
  • sonatype-work 包含Nexus生成的配置文件,日志, 仓库文件等

启动Nexus:
cd nexus-3.10.0-01
./bin/nexus start
常用命令
Usage: ./bin/nexus {start|stop|run|run-redirect|status|restart|force-reload}
启动后在浏览器中访问http://localhost:8081/
默认端口是8081, 要修改在 etc/nexus-default.properties 下
登陆默认账号为 admin/admin123

Maven默认仓库

Sonatype Nexus搭建Maven私服_第1张图片

仓库分类

宿主仓库:maven2 (hosted) 公司内项目会部署在宿主仓库中
代理仓库:maven2 (proxy) 从远程仓库下载并缓存构件
仓库组:maven2 (group) 为了方便, 直接从仓库组下载,而仓库组没有实际内容。它会转向宿主仓库或代理仓库获得实际构件。

手动部署第三方构件

使用Upload手动上传第三方构件
Sonatype Nexus搭建Maven私服_第2张图片

Nexus创建任务

Nexus提供可配置的调度任务用来方便管理,可以设定任务的运行周期:每小时,每周,每月等。
Sonatype Nexus搭建Maven私服_第3张图片

Maven配置从Nexus下载构件

在POM中配置仓库和插件仓库

    <repositories>
        <repository>
            <id>nexusid>
            <name>Nexusname>
            <url>http://localhost:8081/nexus/content/repositories/public/url>
            <releases>
                <enabled>trueenabled>
            releases>
            <snapshots>
                <enabled>trueenabled>
            snapshots>
        repository>
    repositories>

该配置只对项目生效, 要想让本机项目全部生效,需要修改 setting.xml 文件,修改Profile节点。
通过mirror节点将中央仓库的下载请求都发到Nexus私服

<mirrors>
       <mirror>
         <id>nexusid>
         <mirrorOf>*mirrorOf>
          <url>http://localhost:8081/nexus/content/repositories/url>
       mirror>
mirrors>


<profiles>
    <profile>
      <id>nexusid>
      <repositories>
        <repository>
            <id>nexusid>
            <name>private nexusname>
            <url>http://localhost:8081/nexus/content/repositories/url>
            <releases><enabled>trueenabled>releases>
            <snapshots><enabled>falseenabled>snapshots>
        repository>
      repositories>
      <pluginRepositories>
        <pluginRepository>
            <id>nexusid>
            <name>private nexusname>
            <url>http://localhost:8081/nexus/content/groups/public/url>
            <releases><enabled>trueenabled>releases>
            <snapshots><enabled>falseenabled>snapshots>
        pluginRepository>
       pluginRepositories>
    profile>
  profiles>

  <activeProfiles>
    <activeProfile>nexusactiveProfile>
  activeProfiles>

部署构件到私服

将公司内部构件发布到宿主仓库中。
修改项目的POM文件

      <distributionManagement>
        <repository>
            <id>nexus-publicid>
            <name>Public Repositoryname>
            <url>http://localhost:8081/nexus/content/repositories/public/url>
        repository>
        <snapshotRepository>
            <id>snapshotsid>
            <name>Snapshots Repositoryname>
            <url>http://localhost:8081/nexus/content/repositories/snapshots/url>
        snapshotRepository>
    distributionManagement>

nexus仓库对匿名用户是只读的,为了部署,需要在setting.xml中增加认证信息。

  <servers>
    <server>
      <id>nexus-publicid>
      <username>adminusername>
      <password>admin123password>
    server>
    <server>
      <id>snapshotsid>
      <username>adminusername>
      <password>admin123password>
    server>
  servers>  

地址:https://blog.csdn.net/yonggang7/article/details/79942608

你可能感兴趣的:(java,maven,Maven使用)