强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan

【前言】

之前公司的项目是大项目中分子模块,不同模块之间通过依赖,不同项目通过Http进行调用;也存在项目之间模块依赖;随着业务的不断扩张;项目维护成本越来越高;

于是我们在开新项目的时候果断采用了在国内非常成熟的微服务体系:大部分SpringCloud系列+Apollo配置中心(携程)+分布式监控系统Cat(大众点评)等等;当然随着服务增多也必须引入内网私服来管理Jar包;

【配置】

        一、原来项目维护过程中遇到头疼点,主要体现在两方面:

1、项目之间相互耦合程度太高,改一处地方,会影响很多东西;可谓牵一发而动全身;

2、某个模块有所改动,所有依赖该模块的项目都需要进行重新发布;

        二、私服重要性:

1、原来:项目可以看成是一体的,有个公共的parent,所以每次发版只需要package父项目即可;当时不引入内网私服还可以接收;

2、引入微服务之后:各个项目之间只通过API进行关联,如果不引入内网私服,每次打包是相当麻烦,需要将本项目所有依赖到的项目API先打包,然后再进行本项目打包;没有内网的私服,API的各个版本也是无法管理;

        三、项目中引入私服:

1、服务器上安装私服(大家自行百度,一般公司中由运维负责安装);

2、配置Nexus

(1)配置阿里云代理仓库:为Nexus配置阿里云代理仓库

(2)将Releases仓库和Snapshots仓库的“Deployment Policy”设置为“Allow Redeploy”

(3)首先用admin用户登录(admin用户默认密码为admin123)启用Deployment用户(Nexus默认有三个用户,其中Deployment用户用于部署项目;Deployment用户默认密码为deployment123,右键菜单可修改或重置密码;)

2、配置本地Maven的settings.xml文件(maven安装目录下的conf文件夹下;setting文件的结构参考:maven全局配置文件settings.xml详解)

(1)在servers节点下配置server,上传私服的权限

<servers>    <!-- 设置发布 jar 包时的用户名及密--><server> <id>my-release</id>  <username>deployment</username>  <password>deployment123</password> </server><server><id>my-snapshot</id><username>deployment</username><password>deployment123</password></server>
</servers>    

(2)配置profiles节点:

 <profiles><profile><id>my_repo</id><activation><activeByDefault>true</activeByDefault><jdk>1.8</jdk></activation><properties><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target><maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion></properties><repositories><repository><id>local-nexus</id><name>local-nexus</name><url>http://111.111.111.111:11111/nexus/content/groups/public/</url></repository></repositories><pluginRepositories><pluginRepository><id>local-nexus</id><name>local-nexus</name><url>http://111.111.111.111:11111/nexus/content/groups/public/</url></pluginRepository></pluginRepositories></profile></profiles>  

(3)配置activeProfiles节点:

<activeProfiles><activeProfile>wfyn_repo</activeProfile>
</activeProfiles>

3、在项目的pom中进行配置(建议在父的pom中进行配置):

(1)配置plugins:

    <build><plugins><plugin><artifactId>maven-source-plugin</artifactId><version>3.0.1</version><configuration><attach>true</attach></configuration><executions><execution><phase>compile</phase><goals><goal>jar</goal></goals></execution></executions></plugin></plugins></build>

(2)配置distributionManagement:

    <distributionManagement><repository><!-- 这里的ID要和setting的id一致 --><id>my-release</id><url>http://111.111.111.111:11111/nexus/content/repositories/releases/</url></repository><!--这是打成快照版本的配置,如果不用这个snapshotRepository标签,打包失败,会报权限问题 --><snapshotRepository><id>my-snapshot</id><url>http://111.111.111.111:11111/nexus/content/repositories/snapshots/</url></snapshotRepository></distributionManagement>

        四、项目打包常用命令: 

1、清除

mvn clean

2、仅在本地打包(跳过测试)

mvn clean package  -Dmaven.test.skip=true

3、在本地打包并安装到本地仓库(跳过测试)

mvn clean install -Dmaven.test.skip=true

4、在本地打包并上传到内网私服(跳过测试)

mvn clean deploy -Dmaven.test.skip=true

【总结】

1、经验是在不断的探索和演进中积累出来;

2、在工作中直面痛点,不断思考去解决痛点,是快速成长的不二法门。

Maven 项目中配置私服相关推荐

  1. Nexus-在项目中使用Maven私服,Deploy到私服、上传第三方jar包、在项目中使用私服jar包

    场景 Ubuntu Server 上使用Docker Compose 部署Nexus(图文教程): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/ ...

  2. 在Maven项目中添加Maven仓库和私服不存在的jar包

    有些jar包(因为不开源/公司内部私有等原因)在Maven仓库.私服中不存在.在Maven项目中添加Maven仓库和私服不存在的jar包呢? 场景: maven项目有时会遇到用非maven仓库或公司内 ...

  3. idea中的Maven项目怎么配置Tomcat部署

    idea中的Maven项目怎么配置Tomcat部署 1. 开篇简介 2. 开始部署 3. 总结 1. 开篇简介 嗨,大家好! 今天,我想给大家分享的是:如何在idea中的Maven项目怎么配置Tomc ...

  4. executequery方法_在IDEA的maven项目中连接使用MySQL8.0方法教程

    首先看一下我的基本的开发环境: 操作系统:MacOS 10.13.5编辑器:IDEA 2018.3其他:MySQL8.0.15.Maven 3.3.9.JDK 1.8 好,下面就正式开始: 第一步:在 ...

  5. idea新建scala文件_IDEA maven项目中新建.scala文件

    本文首发于我的博客[IDEA maven项目中新建.scala文件] 分为三步 第一步.IDEA中安装scala插件 1.搜索安装 File-Sittings-Plugins-搜索安装scala 2. ...

  6. 用idea建立jsp项目_用idea创建maven项目,配置tomcat详解

    用idea创建maven项目,配置tomcat详解,电脑上得有jdk1.7,或者1.8,然后就是maven3.x吧,再有就是tomcat7以上 下面就直接开始看图啦: 这个我刚刚开始没注意细看,原来w ...

  7. java maven 读取配置文件_Java项目和maven项目中如何获取设置配置文件中的属性

    通常情况下,我们会在一些配置文件文件中配置一些属性.如: indexPath = E\:\\Tomcat_7.0\\webapps\\ipost_stage\\lucene\\index imgUpl ...

  8. IDEA中Maven项目中界面右边的Maven Projects中子项目出现灰色

    问题描述:IDEA中Maven项目中界面右边的Maven Projects中子项目出现灰色 解决办法:原因是忽略了Maven模块. 第一步:在IDEA左上角的File-->Setting中找到M ...

  9. log4j在maven项目中的使用

    log4j在maven项目中的使用 log4j在maven项目中的使用 一.序言 二.log4j在maven中的使用 1.导入依赖 2.配置log4j 方法一:创建log4j.properties 方 ...

最新文章

  1. java 打包apk_Android APK打包流程
  2. 有关UNICODE、ANSI字符集和相关字符串操作的总结[转]
  3. 掌握 Ajax,第 8 部分: 在请求和响应中使用 XML
  4. CG CTF MISC 图种
  5. 【转载】target='_blank' 安全漏洞示例
  6. POI 2003/2007 下拉列表
  7. 《MySQL——事务》
  8. 徐州医科大学计算机报名,2019年徐州医科大学计算机等级考试准考证打印
  9. .net面试中常被面试官问到的问题
  10. 关于码云的一些基本知识_关于使用码云,GITHUB,阿里云CODE来管理代码的一些操作记录...
  11. 【深度学习】训练集、测试集和验证集
  12. 大学生应该怎样学习?
  13. CSU2080: 航行日志的修复
  14. QuartusII软件异常:Error: Top-level design entity is undefined
  15. WindowsDBCA建库
  16. wine 安装(ubuntu中安装windows下软件)
  17. 晶振串联电阻与并联电阻有什么作用?
  18. java switch基础介绍及具体使用方法
  19. 什么是UrlRewrite?
  20. DeepSORT论文翻译(SIMPLE ONLINE AND REALTIME TRACKING WITH A DEEP ASSOCIATION METRIC)

热门文章

  1. 我究竟为什么要每天埋头写代码?
  2. 技术人不会学习,35 岁必然要焦虑!
  3. 华为云新春送福,大吉大利今晚红包雨!
  4. 那是计算机房吗不它不是 英语,人教PEP版英语四年级下册Unit 1《My School》单元测试卷及答案.doc...
  5. 二叉树的之字形层序遍历
  6. Data too long for column ‘blobtext‘ at row 1 问题解决
  7. mac weka连接mysql_weka连接mysqllinux
  8. 计算机系统验证具体的做法,计算机化验证的再验证周期需要定吗?
  9. XMLHttpRequest对象AJAX技术的基本使用
  10. xubuntu16.04是linux系统,win10建立Ubuntu16.04子系统,安装经常使用软件以及图形界面(包括win10远程桌面链接Ubuntu)...