nexus搭建私服

为什么使用私服

  • 问题
    • 通过中央仓库来获取所需构件,实际开发中往往是存在问题
      • 网速慢,下载jar包时间久,工作效率低
      • 不利于公共构件的管理和维护
  • 解决方案
    • 搭建maven私服
      • 本地仓库下载速度优于远程仓库下载
      • 可自行进行构件的管理和维护
        • 第三方jar包
        • 项目模块所依赖的公共构件
  • 原理图

 

如何搭建私服

  • Apache Archiva
  • Artifactory
  • Sonatype Nexus
    • 强大的Maven仓库管理器,简化了内部仓库的维护和外部仓库的访问
    • 不需要数据库,它使用文件系统加Lucene来组织数据
    • 官网:http://www.sonatype.org/nexus/
    • 提供两种安装包
      • bundle(内嵌Jetty容器)
      • war
    • nexus-2.12.0-01-bundle.tar.gz
    • http://www.sonatype.org/nexus/archived/

安装配置

  • 安装环境准备
    • Centos 6.4 64位
    • JDK 1.8
    • nexus-2.12.0-01-bundle.tar.gz
  • 安装配置
    • 上传nexus-2.12.0-01-bundle.tar.gz到/usr/local/nexus
    • 解压tar
    • tar -zxvf nexus-2.12.0-01-bundle.tar.gz
  • 配置文件
    • conf/nexus.properties
  • 启动
    • /usr/local/nexus/nexus-2.12.0-01/bin/nexus start
    • 注意:配置 bin/nexus (RUNASUSER=root)

 

      • nano /usr/local/nexus/nexus-2.12.0-01/bin/nexus
    • 默认端口:8081
    • 默认用户名/密码:admin/admin123
    • 访问:http://服务器IP:8081/nexus/
  • 登陆

 

  • 登陆成功后

 

  • 开启远程索引(自动更新,非常慢,从美国下载,可以挂vpn下载)
    • Central Repository
    • Download Remote Indexes:True

 

    • 通过scheduleTask查看索引跟新进度

 

  • 手动更新索引
    • nexus-maven-repository-index.gz
    • nexus-maven-repository-index.properties
      • 下载地址:http://repo.maven.apache.org/maven2/.index/
    • indexer-cli-5.1.0.jar
      • 下载地址:http://maven.outofmemory.cn/org.apache.maven.indexer/indexer-cli/5.1.0/
  • 执行命令
    • chmod 777 indexer-cli-5.1.0.jar nexus-maven-repository-index.gz nexus-maven-repository-index.properties
    • java -jar indexer-cli-5.1.0.jar -u nexus-maven-repository-index.gz -d indexer
  • 停止nexus
    • /usr/local/nexus/nexus-2.12.0-01/bin/nexus stop
  • 删除原有的索引文件
    • cd /usr/local/nexus/sonatype-work/nexus/indexer/central-ctx/
    • rm -r *
  • 将自己手动生成的索引拷贝到nexus的/central-ctx/下
    • cd /usr/local/nexus/index/indexer
    • cp -r * /usr/local/nexus/sonatype-work/nexus/indexer/central-ctx/

 

  • 重启nexus即可自动更新索引
    • /usr/local/nexus/nexus-2.12.0-01/bin/nexus start

 

仓库简单介绍

  • 四种仓库类型
    • Hosted Repository:本地仓库,通常我们会部署自己的构件到这一类型的仓库
    • Proxy Repository:代理仓库,它们被用来代理远程的公共仓库,如 Maven 中央仓库
      • 可以点击对应的仓库的Configuration页签下RemoteStorage Location 属性的值即被代理的远程仓库的路径
    • VirtualRepository:虚拟仓库
    • RepositoryGroup:仓库组,用来合并多个 hosted/proxy 仓库
  • 两种仓库格式
    • maven2
    • maven1
  • 两种仓库 Policy
    • Release(发布版本,即稳定版本)
    • Snapshot(资源快照,版本相对不稳定)
  • 几个预定义仓库
    • 3rdparty
      • 存放第三方构件,一些无法从公共仓库获得的构件
      • 在仓库的 Artifact Upload页签中可以执行上传操作

    • ApacheSnapshots: 使用代理 ApacheMaven 仓库快照版本的构件仓库
    • Central: 用来代理 Maven 中央仓库中发布版本构件的仓库,策略为 Release、只会下载和缓存中央仓库中的发布版本构件。
    • Releases: 存放稳定版本的构件。比如:我们完成了一个版本下的组件开发,就可以把它发布到这里
    • Snapshots: 存放快照版本的构件。

nexus常规操作

  • 修改admin密码
  • 在发布构件一般需要帐号和密码

 

  • 新增用户

 

自动发布构件到nexus仓库

  • 在工程的 pom.xml 中添加:distributionManagement
    • 发布仓库(distributionManagement):负责管理构件的发布包和其他编译生成的支撑文件,那么我们自主开发的 jar 需要上传到 Nexus 的时候需要在pom中增加 distributionManagement 节点进行自动打包上传。 配置上传的仓库有两个:snapshot 快照仓库和 release发布仓库

  1.     <repository>
            <id>releases</id><!--ID 需要与你的 release 仓库的 RepositoryID 一致-->
            <url>http://192.168.1.6:8081/nexus/content/repositories/releases</url>
        </repository>
        <snapshotRepository>
            <id>snapshots</id><!--ID 需要与你的 snapshots 仓库的 RepositoryID 一致-->
            <url>http://192.168.1.6:8081/nexus/content/repositories/snapshots</url>
        </snapshotRepository>
    </distributionManagement>
  • 修改本地 maven 的 settings.xml 文件,配置用户名/密码

  1.     <id>releases</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>snapshots</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
     
    <!--当然若你要上传构件到其他仓库,可依照如下代码进行配置-->
    <server>
        <id>thirdparty</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
    <server>
        <id>central</id>
        <username>admin</username>
        <password>admin123</password>
    </server>
  • 在 idea 中,工程所在目录下执行 mvn 命令(mvn:deploy) 将最终版本的包拷贝到远程的 Repository,使得其他的开发者或者工程项目可以共享。所部署的包就自动上传到了Nexus指定的仓库里

 

  • 也可以手动去部署
  1. deploy:deploy-file -DgroupId=com.itrip -DartifactId=itrip-beans -Dversion=1.0-SNAPSHOT -Dpackaging=jar -Dfile=D:\code\idea\itripback\itrip-beans\target\itrip-beans-1.0-SNAPSHOT.jar -Durl=http://192.168.1.5:8081/nexus/content/repositories/snapshots/-DrepositoryId=snapshots -DrepositoryId=snapshots
    • DgroupId 和 DartifactId 构成了该 jar 包在 pom.xml 的坐标,项目就是依靠这两个属性定位。
    • Dfile 表示需要上传的 jar 包的绝对路径。
    • Durl 私服上仓库的位置,打开 nexus——>repositories 菜单,可以看到该路径。
    • DrepositoryId 服务器的表示 id,在 Nexus 的 configuration 可以看到。
    • Dversion 表示版本信息

配置从nexus私服下载构件

  • 首先配置maven镜像
    • 配置镜像目的就是让 Maven 只使用私服,修改 Maven 的 setting.xml 文件

  1.     <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <name>local nexus repository</name>
        <url>http://192.168.1.5:8081/nexus/content/groups/public/</url>
    </mirror>
    • 在 pom 文件不做任何配置的情况下,默认是使用 id 为 central 的Maven中央库进行配置的。那么以上配置只取代了pom中的下载仓库,覆盖了 maven 默认的配置。 mirrorOf 配置为*,表示这个镜像配置适用于所有的仓库,是所有仓库的一个镜像, maven 无论要去那个仓库下载构件都会跳转到镜像URL去下载
  • 修改项目的pom文件,设置下载仓库

  1.     <repository>
            <id>public</id>
            <name>TeamMavenRepository</name>
            <url>http://192.168.1.5:8081/nexus/content/groups/public/</url>
            <releases>
                <enabled>true</enabled><!--是否支持更新-->
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </repository>
    </repositories>
    • 上述配置只对当前项目有效,若需让本机所有Maven项目均使用该 Mavne私服,应该在 setting.xml中进行配置
  • 通过在settings.xml中配置profile元素, 可以让本机所有的Maven项目都使用Maven私服

  1.     <profile>
            <id>public</id>
            <repositories>
                <repository>
                    <id>public</id>
                    <name>Nexus</name>
                    <url>http://192.168.1.5:8081/nexus/content/groups/public/</url>
                    <releases>
                        <enabled>true</enabled>
                    </releases>
                    <snapshots>
                        <enabled>true</enabled>
                    </snapshots>
                </repository>
            </repositories>
        </profile>
    </profiles>
     
    <!--用来激活指定的profile-->
    <activeProfiles>
        <activeProfile>public</activeProfile>
    </activeProfiles>
下载前可以先看下教程 https://pan.quark.cn/s/a4b39357ea24 在网页构建过程中,表单(Form)扮演着用户与网站之间沟通的关键角色,其主要功能在于汇集用户的各类输入信息。 JavaScript作为网页开发的核心技术,提供了多样化的API和函数来操作表单组件,诸如input和select等元素。 本专题将详细研究如何借助原生JavaScript对form表单进行视觉优化,并对input输入框与select下拉框进行功能增强。 一、表单基础1. 表单组件:在HTML语言中,<form>标签用于构建一个表单,该标签内部可以容纳多种表单组件,包括<input>(输入框)、<select>(下拉框)、<textarea>(多行文本输入区域)等。 2. 表单参数:诸如action(表单提交的地址)、method(表单提交的协议,为GET或POST)等属性,它们决定了表单的行为特性。 3. 表单行为:诸如onsubmit(表单提交时触发的动作)、onchange(表单元素值变更时触发的动作)等事件,能够通过JavaScript进行响应式处理。 二、input元素视觉优化1. CSS定制:通过设定input元素的CSS属性,例如border(边框)、background-color(背景色)、padding(内边距)、font-size(字体大小)等,能够调整其视觉表现。 2. placeholder特性:提供预填的提示文字,以帮助用户明确输入框的预期用途。 3. 图标集成:借助:before和:after伪元素或者额外的HTML组件结合CSS定位技术,可以在输入框中嵌入图标,从而增强视觉吸引力。 三、select下拉框视觉优化1. 复选功能:通过设置multiple属性...
【EI复现】基于深度强化学习的微能源网能量管理与优化策略研究(Python代码实现)内容概要:本文围绕“基于深度强化学习的微能源网能量管理与优化策略”展开研究,重点探讨了如何利用深度强化学习技术对微能源系统进行高效的能量管理与优化调度。文中结合Python代码实现,复现了EI级别研究成果,涵盖了微电网中分布式能源、储能系统及负荷的协调优化问题,通过构建合理的奖励函数与状态空间模型,实现对复杂能源系统的智能决策支持。研究体现了深度强化学习在应对不确定性可再生能源出力、负荷波动等挑战中的优势,提升了系统运行的经济性与稳定性。; 适合人群:具备一定Python编程基础和机器学习背景,从事能源系统优化、智能电网、强化学习应用等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于微能源网的能量调度与优化控制,提升系统能效与经济效益;②为深度强化学习在能源管理领域的落地提供可复现的技术路径与代码参考;③服务于学术研究与论文复现,特别是EI/SCI级别高水平论文的仿真实验部分。; 阅读建议:建议读者结合提供的Python代码进行实践操作,深入理解深度强化学习算法在能源系统建模中的具体应用,重点关注状态设计、动作空间定义与奖励函数构造等关键环节,并可进一步扩展至多智能体强化学习或与其他优化算法的融合研究。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值