百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 热门文章 > 正文

「重新maven学习」Ⅲmaven pom文件常用标签的使用以及标签的含义

bigegpt 2024-08-10 11:57 2 浏览

重新学习maven-maven-pom.xml里面所有标签的含义

?这个是maven配置文件的核心配置,详细了解一下pom.xml。

1、<modelVersion>4.0.0</modelVersion>
     指定了当前Maven模型的版本号。声明项目描述符遵循哪一个POM模型版本。模型本身的版本很少改变,虽然如此,但它仍然是必不可少的,这是为了当Maven引入了新的特性或者其他模型变更的时候,确保稳定性。 
2、<groupId>asia.banseon</groupId>
     一般来说groupId是由三个部分组成,每个部分之间以"."分隔,第一部分是项目用途,比如用于商业的就是"com",用于非营利性组织的就  是"org";第二部分是公司名,比如"tengxun"、"baidu"、"alibaba";第三部分是你的项目名。项目的全球唯一标识符,通常使用全限定的包名区分该项目和其他项目。并且构建时生成的路径也是由此生成, 如com.mycompany.app生成的相对路径为:/com/mycompany/app
3、<artifactId>banseon-maven2</artifactId>   
     可以认为是Maven构建的项目名,比如你的项目中有子项目,就可以使用"项目名-子项目名"的命名方式。构件的标识符,它和group ID一起唯一标识一个构件。换句话说,你不能有两个不同的项目拥有同样的artifact ID和groupID;在某个 特定的group ID下,artifact ID也必须是唯一的。构件是项目产生的或使用的一个东西,Maven为项目产生的构件包括:JARs,源 码,二进制发布和WARs等。   
4、<packaging>jar</packaging>  
    项目产生的构件类型,例如jar、war、rar、ear、pom默认是jar。插件可以创建他们自己的构件类型,所以前面列的不是全部构件类型 
5、<version>1.0-SNAPSHOT</version>   
    版本号。项目当前版本,格式为:主版本.次版本.增量版本-限定版本号 
6、<name>banseon-maven</name>   
    项目的名称, Maven产生的文档用 
7、<url>http://www.baidu.com/banseon</url>
    项目主页的URL, Maven产生的文档用
8、<description>A maven project to study maven.</description>    
    项目的详细描述, Maven 产生的文档用。  当这个元素能够用HTML格式描述时(例如,CDATA中的文本会被解析器忽略,就可以包含HTML标 签), 不鼓励使用纯文本描述。如果你需要修改产生的web站点的索引页面,你应该修改你自己的索引页文件,而不是调整这里的文档。    
    

?

1、<dependencies></dependencies>
    This element describes all of the dependencies associated with a
project. These dependencies are used to construct a classpath for your
project during the build process. They are automatically downloaded from the
repositories defined in this project.
    项目引入插件所需要的额外依赖
2、<dependency></dependency>
    依赖       dependencies和dependency
       dependencies包含dependency。Maven的一个重要作用就是统一管理jar包,为了一个项目可以build或运行,项目中不可避免的,会依赖很多其他的jar包,在Maven中,所有的依赖都被称为dependency。配置dependency依赖,maven就会根据仓库配置从远程仓库下载jar包到本地仓库。
3、<scope>test</scope>
    仅供system范围使用。注意,不鼓励使用这个元素,并且在新的版本中该元素可能被覆盖掉。该元素为依赖规定了文件系统上的路径。需要绝对路径而不是相对路径。推荐使用属性匹配绝对路径,例如${java.home}。
4、<version>${mysql.version}</version>
   <mysql.version>8.0.17</mysql.version>
    版本号,被使用的插件的版本(或版本范围)
?
5、<optional>true</optional>  
   可选依赖,如果你在项目B中把C依赖声明为可选,你就需要在依赖于B的项目(例如项目A)中显式的引用对C的依赖。可选依赖阻断依赖的传递性。

?

6、<exclusions> <exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-generator</artifactId> </exclusion> </exclusions>

当计算传递依赖时, 从依赖构件列表里,列出被排除的依赖构件集。即告诉maven你只依赖指定的项目,不依赖项目的依赖。此元素主要用于解决版本冲突问题

?

1、<build></build>

构建项目需要的信息

2、<finalName>${project.artifactId}</finalName>

产生的构件的文件名,默认值是${artifactId}-${version}。

3、<extension></extension>

使用来自该项目的一系列构建扩展,是否从该插件下载Maven扩展(例如打包和类型处理器),由于性能原因,只有在真需要下载时,该元素才被设置成enabled。

4、<plugins></plugins>

使用的插件列表

5、<plugin></plugin>

描述插件所需要的信息

6、<configuration></configuration>

报表插件的配置

<!--一组报表的多种规范,每个规范可能有不同的配置。一个规范(报表集)对应一个执行目标 。例如,有1,2,3,4,5,6,7,8,9个报表。1,2,5构成A报表集,对应一个执行目标。2,5,8构成B报表集,对应另一个执行目标--> <reportSets> <!--表示报表的一个集合,以及产生该集合的配置--> <reportSet> <!--报表集合的唯一标识符,POM继承时用到--> <id/> <!--产生报表集合时,被使用的报表的配置--> <configuration/> <!--配置是否被继承到的POMs--> <inherited/> <!--这个集合里使用到哪些报表--> <reports/> </reportSet> </reportSets>

6、<fork>true</fork>

用于明确表示编译版本配置有效

7、<skipTests>true</skipTests>

-DskipTests,不执行测试用例,但编译测试用例类生成相应的class文件至target/test-classes下。

-Dmaven.test.skip=true,不执行测试用例,也不编译测试用例类。

一 使用maven.test.skip,不但跳过单元测试的运行,也跳过测试代码的编译。

   mvn package -Dmaven.test.skip=true 

pom.xml文件中修改

<plugin> <groupId>org.apache.maven.plugin</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.1</version> <configuration> <skip>true</skip> </configuration> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.5</version> <configuration> <skip>true</skip> </configuration> </plugin>


二 使用 mvn package -DskipTests 跳过单元测试,但是会继续编译;如果没时间修改单元测试的bug,或者单元测试编译错误。使用上面的,不要用这个


<plugin>  
    <groupId>org.apache.maven.plugins</groupId>  
    <artifactId>maven-surefire-plugin</artifactId>  
    <version>2.5</version>  
    <configuration>  
        <skipTests>true</skipTests>  
    </configuration>  
</plugin> 

默认idea的跳过测试采用的是第二种,所以仍然会编译代码,如果想不执行测试用例,也不编译测试用例类,那么必须采用第一种方式在pom中加上skip为true,这样才能跳过编译

?

?

8、<fromFile>target/${pack-name}</fromFile>

是要上传到服务器的文件,一般来说是jar或者war包

9、<url><![CDATA[scp://${remote-username}:${remote-passwd}@${remote-addr}${service-path}]]></url>

配置服务器的用户、密码、地址以及文件上传的目录。

10、<commands> <!-- Kill Old Process --> <command>kill -9 `ps -ef |grep ${project.artifactId}.jar|grep -v "grep" |awk '{print $2}'`</command> <!-- Restart jar package,write result into log.log --> <command><![CDATA[nohup java -jar ${service-path}/${pack-name} --spring.profiles.active=test > ${service-path}/log.log 2>&1 & ]]></command> <command><![CDATA[netstat -nptl]]></command> <command><![CDATA[ps -ef | grep java | grep -v grep]]></command> </commands>

启动jar包通常会使用java -jar test.jar命令,可以将命令配置在pom.xml中,杀死,重新启动,写入日志。

?

1、docker配置docker-maven-plugin参数介绍,这个可以查一下单独学一下。

?

1、配置镜像地址

<pluginRepositories></pluginRepositories>发现插件的远程仓库列表,这些插件用于构建和报表,我这里配置的是


结尾:我的项目里面大概就用到这么多,还有什么没有涉及到,或者没有学到呢?

相关推荐

10w qps缓存数据库——Redis(redis缓存调优)

一、Redis数据库介绍:Redis:非关系型缓存数据库nosql:非关系型数据库没有表,没有表与表之间的关系,更不存在外键存储数据的形式为key:values的形式c语言写的服务(监听端口),用来存...

Redis系列专题4--Redis配置参数详解

本文基于windowsX64,3.2.100版本讲解,不同版本默认配置参数不同在Redis中,Redis的根目录中有一个配置文件(redis.conf,windows下为redis.windows....

开源一夏 | 23 张图,4500 字从入门到精通解释 Redis

redis是目前出场率最高的NoSQL数据库,同时也是一个开源的数据结构存储系统,在缓存、数据库、消息处理等场景使用的非常多,本文瑞哥就带着大家用一篇文章入门这个强大的开源数据库——Redis。...

redis的简单与集群搭建(redis建立集群)

Redis是什么?是开源免费用c语言编写的单线程高性能的(key-value形式)内存数据库,基于内存运行并支持持久化的nosql数据库作用主要用来做缓存,单不仅仅是做缓存,比如:redis的计数器生...

推荐几个好用Redis图形化客户端工具

RedisPlushttps://gitee.com/MaxBill/RedisPlusRedisPlus是为Redis可视化管理开发的一款开源免费的桌面客户端软件,支持Windows、Linux...

关于Redis在windows上运行及fork函数问题

Redis在将数据库进行持久化操作时,需要fork一个进程,但是windows并不支持fork,导致在持久化操作期间,Redis必须阻塞所有的客户端直至持久化操作完成。微软的一些工程师花费时间在解决在...

你必须懂的Redis十大应用场景(redis常见应用场景)

Redis作为一款高性能的键值存储数据库,在互联网业务中有着广泛的应用。今天,我们就来详细盘点一下Redis的十大常用业务场景,并附上Golang的示例代码和简图,帮助大家更好地理解和应用Redis。...

极简Redis配置(redis的配置)

一、概述Redis的配置文件位于Redis安装目录下,文件名为redis.conf(Windows名为redis.windows.conf,linux下的是redis.conf)你可以通过C...

什么是redis,怎么启动及如何压测

从今天起咱们一起来学习一下关于“redis监控与调优”的内容。一、Redis介绍Redis是一种高级key-value数据库。它跟memcached类似,不过数据可以持久化,而且支持的数据类型很丰富。...

一款全新Redis UI可视化管理工具,支持WebUI和桌面——P3X Redis UI

介绍P3XRedisUI这是一个非常实用的RedisGUI,提供响应式WebUI访问或作为桌面应用程序使用,桌面端是跨平台的,而且完美支持中文界面。Githubhttps://github....

windows系统的服务器快速部署java项目环境地址

1、mysql:https://dev.mysql.com/downloads/mysql/(msi安装包)2、redis:https://github.com/tporadowski/redis/r...

window11 下 redis 下载与安装(windows安装redis客户端)

#热爱编程是一种怎样的体验#window11下redis下载与安装1)各个版本redis下载(windows)https://github.com/MicrosoftArchive/r...

一款轻量级的Redis客户端工具,贼好用!

使用命令行来操作Redis是一件非常麻烦的事情,我们一般会选用客户端工具来操作Redis。今天给大家分享一款好用的Redis客户端工具TinyRDM,它的界面清新又优雅,希望对大家有所帮助!简介Ti...

一个.NET开发且功能强大的Windows远程控制系统

我们致力于探索、分享和推荐最新的实用技术栈、开源项目、框架和实用工具。每天都有新鲜的开源资讯等待你的发现!项目介绍SiMayRemoteMonitorOS是一个基于Windows的远程控制系统,完...

Redis客户端工具详解(4款主流工具)

大家好,我是mikechen。Redis是大型架构的基石,也是大厂最爱考察内容,今天就给大家重点详解4款Redis工具@mikechen本篇已收于mikechen原创超30万字《阿里架构师进阶专题合集...