当前位置: 首页 > wzjs >正文

深圳网站优化广东省城乡建设厅网站

深圳网站优化,广东省城乡建设厅网站,最好看的网站模板,关闭小程序api编译 软件 mac-m芯片arm架构 maven-3.9.9 IDEA-2023.3.8 JDK-17(zulu17.56.15) IDEA设置 工程设置 maven设置 Compiler设置 执行编译 注意观察执行的命令是否是配置的mavensettings.xml、jdk等,本人就碰到了个坑明明上述配置都完成了的…

编译

软件

mac-m芯片arm架构

maven-3.9.9

IDEA-2023.3.8

JDK-17(zulu17.56.15)

IDEA设置

工程设置

maven设置

Compiler设置

执行编译

注意观察执行的命令是否是配置的maven+settings.xml、jdk等,本人就碰到了个坑明明上述配置都完成了的,但执行clean、compile等时候却使用默认配置,导致编译失败

默认配置

1、我本身系统使用brew安装了jdk8,也配置了JAVA_HOME等变量。这样IDEA会直接读到这个jdk路径作为默认的jdk(有点像Spring的约定大于配置的思想)实际上很多软件都会尝试自动读环境变量JAVA_HOME的配置(MAVEN_HOME也是如此)

而这个工程要求jdk版本17以上,因此不得不下载一个tar形式的jdk(但不对其做任何环境变量的配置,只是找个目录解压下来就行),然后仅对这个项目使用该jdk17

2、maven是下载的tar形式的3.9.9版本,其conf目录下有个settings.xml文件

这里又是约定大于配置的思想,在默认情况下若IDEA等工具配置maven时,会使用其conf下的settings.xml,而这个xml文件你不修改的它的话,在maven运行时又会有默认配置,比较关注的是

1)本地仓库localRepository:默认为【xxxxx/.m2/Repository】

2)远程仓库mirror:默认为【https://repo.maven.apache.org/maven2/】

这俩值不改的话会有一些痛苦的事情:编译时巨慢(因为从远程仓库里下载jar包太慢了);时间久了c盘要爆炸(因为上述.m2路径是在用户路径下,如果是windows电脑就在C盘里)

因此不管什么姿势使用maven时,都先把conf/.settings.xml文件里的这俩值改一下,远程仓库建议直接用aliyun,本地仓库本人一般是放在【xxx/xxx/repositories/default/Repository】

再回到本次项目,公司一般会有自己的maven配置,那又希望这个项目用一个本地仓库、公司用一个本地仓库,其实思想类似python工程的Virtualenv Environment是类似的

这里我配置了3个settings文件,一个默认使用,一个公司项目使用,一个是单独为这个项目编译使用,互不影响

注意事项

在执行maven命令时,一定要注意所使用的命令是否是自己期望的,否则会有一些奇奇怪怪的错误

运行

maven依赖冲突

这是比较头疼的一件事情,依赖冲突本身概念简单但会碰到各种各样奇怪的事情:

编辑期 & 编译期

先说可能会碰到什么样的现象

1、Run maven clean install成功(即使用maven没问题)但代码就是报错,而且是那种不点开这个代码文件就不会报错,但只要一点开就报错,刷新后文件夹不报错但点开文件又报错

1)可能是IDEA自身索引问题,用的时间比较久了、项目比较大文件很多:可以使用更新版本的IDEA、Reload All Maven Projects、Repair IDE、Invalidate caches等

2)可能maven依赖冲突(随着IDEA工具越来越完善,但是公司项目代码和依赖越积越多,这个情况才是碰到最多)

这种比较好排查,代码里报错的不认识的标识符会显示【Cann't no resolve xxx】然后import位置会是灰色+红色,类似下面这样

点开灰色的model可以定位到项目的本地依赖(注意是本地依赖,这里为啥要强调呢?留个悬念)

但是困惑的是,在我们IDEA里显示这个类明明是有的啊

原因:公司项目一般是使用专门的文件统一管理依赖的<version>字段的,一般不同项目都不会自己管理version,而二方包相互依赖不同业务可能使用一些共同包升级节奏不同,非常容易造成对一些基础包的依赖版本不同,比如公司提供一个common-utils包,而某个业务方使用了最新的但某些业务方却使用旧的,这样当相互依赖时就会导致版本冲突

解决方案:其实是在增加pom依赖的过程中没有遵循好的规范导致的,比如api包应该干净,不应该依赖任何包(然而很少有做到这一点的)等等

临时方案:

3)本地依赖无法覆盖

现在回答一下上面的本地依赖问题:

当我们执行maven clean install时,会向我们本地仓库里写入一个jar包文件

当我们构建工程时,若本地仓库没有会从公司maven仓库里下载到本地仓库里

首先这里有个原则是

运行期

这种情况比较少碰到,我已经没有截图证据了,印象当中是代码编辑、编译、构建jar包、程序启动等过程全都没问题,但偏偏就逻辑执行到时报一些ClassNotFound、方法未找到等错误,拉最新代码来看又看不出问题(因为本地看代码使用的是电脑本地仓库,IDEA报不报错除了依赖你本地仓库外,还有自己的代码索引);当时是通过arthas命令看目前正在运行的jar包所载入的依赖jar包版本、类路径等,才发现其依赖的二方包未更新

http://www.dtcms.com/wzjs/816961.html

相关文章:

  • 网站开发哪个工具网站建设公司的优势
  • 阜新网站建设单位网络推广的优化服务
  • app 展示网站wordpress主题阁
  • 云南网站建设效果好吗手机维护 Wordpress
  • vue.js和vs做网站比较河南省做网站的企业
  • 兴华建设集团有限公司网站建设网站需要的ftp资源
  • 建站大师阙梅娇简介番禺建设网站公司
  • 专业做网站优化排名wordpress添加自定义字段面板
  • 浙江网站建设费用wordpress编辑器可视化调用
  • 义安区住房和城乡建设局建网站微网官方网站
  • 建设项目竣工验收公示网站人工智能营销网站开发
  • 宁波市江东区地块建设网站wordpress域名修改
  • 怎么找网站站长专业开发小程序公司
  • xp系统中做网站服务器吗吉安建站公司
  • 咸阳网站建设方案研发网站建设报价
  • 网站建设一般预付比例多少专门做app的网站
  • wordpress淘口令插件网站seo设计方案案例
  • 做网站的市场前景seo技术培训教程视频
  • 专业制作网站费用网站使用条款模板
  • 网站联系我们页面设计汶上1500元网站建设
  • 怎样将自己做的网站发布到外网上备案域名购买腾讯云
  • 点餐网站模板网站建设 深圳宝安
  • 保定市做网站的电话wordpress媒体文档
  • 深圳企业网站制作企业网站建设包含以下哪些建设阶段
  • 网站验证wordpress情侣主题汉化
  • 有关大学生做兼职的网站知乎网站建设入门书
  • 深圳便宜建网站直播:韩国vs加纳直播
  • 凡客诚品老板做网站推广 seo的
  • 专业的网站建设制作服务西安住房城市建设局官网
  • 制作网页和网站的区别主机租赁平台