首页 > 其他分享 >maven笔记

maven笔记

时间:2024-09-07 17:25:02浏览次数:8  
标签:Maven 依赖 java 文件 jar 笔记 maven 文件夹

1、依赖范围【scope】:编译环境(main文件夹)、测试环境(test文件夹)、运行环境(打成的war包是否可用)

  compile:测试依赖范围,缺省值上面的三个环境都可用,如log4j。

  test:只争对测试classpath有效,如junit。

  provided:只对编译环境和测试环境有效,运行阶段外部容器已提供,故不需要额外引入,如servlet-api。

  runtime:运行时依赖范围。只对测试环境,运行环境有效,如JDBC驱动实现依赖,其在编译时只需JDK提供的JDBC接口即可,只有测试、运行阶段才需要实现了JDBC接口的驱动。

  system:系统依赖范围。效果与provided的依赖范围一致。其用于添加非Maven仓库的本地依赖,通过依赖元素dependency中的systemPath元素指定本地依赖的路径。鉴于使用其会导致项目可移植性降低,一般不推荐使用。

  import:导入依赖范围。该依赖范围只能与dependencyManagement元素配合使用,其功能是将目标pom.xml文件中dependencyManagement的配置导入合并到当前pom.xml的dependencyManagement中。

2、Maven工程jar包依赖报错:

  可能本地Maven仓库或缓存被污染或损坏,导致Maven无法正确的使用现有依赖。(下载jar包丢包)

  解决方案:当jar包下载失败时Maven会在本地仓库生产(lastUpdate文件),Maven检测到(lastUpdate文件)文件后不会重新下载jar包,如下载时没网,后来又有网了也不会下载成功。删除缓存文件,重新下载即可。

3、Build构建配置【打包时的额外配】:

  如果在java文件夹中添加java类,会自动打包编译到classes文件夹下。

  但是在java文件夹中添加xml文件,默认不会被打包。

  resource下的配置文件会被打包到classes根目录下。

  应用场景:mybatis中有时会将用于编写SQL语句的映射文件和mapper接口都写在src/main/java下的某个包中,此时映射文件就不会被打包。

  <build>

    <!---自定义打包名称->

    <finalName>jar包名称.war</finalName>

    <!--设置要打包的资源位置-->         <resources>       <resource>         <!---设置资源所在目录->         <directory>src/main/java</directory>         <includes>           <!---设置包含的资源类型->           <include>**/*.properties</include>           <include>**/*.xml</include>         </includes>       </resource>     </resources>

  </build>

4、依赖传递:

  非compile范围进行依赖传递

  使用optional配置终止传递

  依赖冲突(传递的依赖已经存在)

  解决依赖冲突:路径最短者优先,路径相同,先声明优先。

  手动排除依赖。

 

标签:Maven,依赖,java,文件,jar,笔记,maven,文件夹
From: https://www.cnblogs.com/record-100/p/18401929

相关文章

  • 【人工智能学习笔记】1_人工智能基础
    本系列是个人学习《阿里云人工智能工程师ACA认证免费课程(2023版)》的笔记,仅为个人学习记录,欢迎交流,感谢批评指正人工智能概述智能的三大能力:感知、记忆与思维、学习与适应能力人工智能的定义明斯基:“人工智能是一门科学,是使机器做那些人需要通过智能来做的事情”尼尔森......
  • GenRec论文阅读笔记
    GenRec:LargeLanguageModelforGenerativeRecommendation论文阅读笔记Abstract​ 本文提出了一种使用大型语言模型(LLM)的创新推荐系统方法,该方法纯粹基于原始文本数据,即使用项目名称或标题作为项目ID,而不是创建精心设计的用户或项目ID。更具体地说,我们提出了一种新颖的用......
  • Linux shell编程学习笔记77:tar命令——快照 & 备份(下)
     0 前言在Linuxshell编程学习笔记76:tar命令——快照&备份(上)中我们研究了 tar命令 的功能、格式、选项说明。现在我们来实践一下。1 应用实例1.1 创建演示文件和目录我们使用echo 命令和输出重定向创建文件f1 和f2,使用mkdir命令创建目录d1[purpleendurer@bash~]e......
  • Linux shell编程学习笔记76:tar命令——快照 & 备份(上)
    0 前言提取系统快照和备份文件都是我们的日常工作。在Windows中,我们可以创建系统还原点,在需要的时候可以把系统还原回去。在Linux中,我们可以使用tar命令来实现。1tar命令的功能,帮助信息,格式,选项和参数说明1.1 tar命令的功能tar名字来自"tapearchive"(磁带归档),最初用于将文件......
  • java入门笔记2(类和对象到接口)
    类和对象最简单的类packagestudy;publicclasstest1{publicintbrand;publicStringname;publicvoidread(){System.out.println(brand+"book");}publicvoideat(inta){System.out.println(name+"eat&quo......
  • 线性基学习笔记
    1.线性基的本质线性基的本质就是空间上的一组向量可以用线性变换表示出所有向量。OI中常见的主要是异或线性基,就是用若干个数表示一组数的异或和的空间。2.异或线性基2.1插入线性基的构建本质上类似高斯消元。我们设\(b_i\)表示主元是\(i\)的数,对于一个线性基加入一......
  • 【内网渗透】最保姆级的春秋云镜Exchange打靶笔记
    目录flag1flag2flag3 flag4flag1fscan扫外网访问8000端口->官方网站 Java代码审计之华夏ERPCMSv2.3|Drunkbaby'sBlogadmin/123456弱口令打/user/list?search=的jdbc+fj反序列化vps搭一个MySQL_Fake_Serverpayload:/user/list?search=%7b%20%22%6e%6......
  • prometheus学习笔记之kube-state-metrics
    一、kube-state-metrics简介Kube-state-metrics:通过监听APIServer生成有关资源对象的状态指标,比如Deployment、Node、Pod,需要注意的是kube-state-metrics只是简单的提供一个metrics数据,并不会存储这些指标数据,所以我们可以使用Prometheus来抓取这些数据然后存储,......
  • opencv-python学习笔记2-opencv基本操作
    目录 一、opencv架构:(1)OpenCV的主要模块包括:(2)OpenCV的架构特点:(3)OpenCV的应用场景:二、图像输入输出模块imgcodecs: a.imread:b. imwrite:三、opencv界面编程:(1)创建窗口:(2)显示图像:(3)添加滑块:(4)处理鼠标事件:(5)等待用户输入(6)销毁窗口四、单窗口显示多图片:(1)np.hstack()......
  • DataX实战之MongoDB导入数据到mysql——打包jar包时出现Could not find goal assembly
    使用idea打开我们本地的datax源码或者下载的源码下载地址:https://github.com/alibaba/DataX/blob/master/mongodbreader/doc/mongodbreader.md进行编译,打包上传:指定mongodbreader模块以及它所依赖的模块进行打包【推荐使用,大约只运行3分钟左右】mvn-Ucleanpac......