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

6-Maven的使用

6-Maven的使用

常用maven命令

//常用maven命令

mvn -v //查看版本
mvn archetype:create //创建 Maven 项目
mvn compile //编译源代码
mvn test-compile //编译测试代码
mvn test //运行应用程序中的单元测试
mvn site //生成项目相关信息的网站
mvn package //依据项目生成 jar 文件
mvn install //在本地 Repository 中安装 jar
mvn -Dmaven.test.skip=true //忽略测试文档编译
mvn clean //清除目标目录中的生成结果
mvn clean compile //将.java类编译为.class文件
mvn clean package //按照pom文件制定的打包方式和插件打包,生成的包会在target目录下
mvn clean test //执行单元测试
mvn clean deploy //发布到当前项目的jar包到本地仓库和远程仓库
mvn clean install //使其他项目使用这个jar,会安装到maven本地仓库中
mvn archetype:generate //创建项目架构
mvn dependency:list //查看已解析依赖
mvn dependency:tree //看到依赖树
mvn dependency:analyze //查看依赖的工具
mvn help:system //打印所有可用的环境变量和Java系统属性

mvn help:active-profiles //查看当前激活的profiles
mvn help:all-profiles //查看所有profiles
mvn help:effective-pom //查看完整的pom信息

mvn help:effective-settings//查看有效setttings配置

mvn -X // 查看当前项目的所有mvn配置

Maven 属性【变量】

Maven共有6类属性:

  1. 内置属性(Maven预定义,用户可以直接使用)

    ${basedir}表示项目根目录,即包含pom.xml文件的目录;

    ${version}表示项目版本;

    p r o j e c t . b a s e d i r 同 {project.basedir}同 project.basedir{basedir};

    ${project.baseUri}表示项目文件地址;

    ${maven.build.timestamp}表示项目构件开始时间;

  2. POM属性(使用pom属性可以引用到pom.xml文件对应元素的值)

    ${project.build.directory}表示主源码路径;

    ${project.build.sourceEncoding}表示主源码的编码格式;

    ${project.build.sourceDirectory}表示主源码路径;

    ${project.build.finalName}表示输出文件名称;

    p r o j e c t . v e r s i o n 表示项目版本 , 与 {project.version}表示项目版本,与 project.version表示项目版本,{version}相同;

  3. 自定义属性(在pom.xml文件的标签下定义的Maven属性)

       <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
    

    在其他地方使用${maven.build.timestamp.format}使用该属性值。

  4. settings.xml文件属性(与pom属性同理,用户使用以settings.开头的属性引用settings.xml文件中的XML元素值)

    ${settings.localRepository}表示本地仓库的地址;

  5. Java系统属性(所有的Java系统属性都可以使用Maven属性引用)

    使用mvn help:system命令可查看所有的Java系统属性;

    System.getProperties()可得到所有的Java属性;

    ${user.home}表示用户目录;

  6. 环境变量属性(所有的环境变量都可以用以env.开头的Maven属性引用)

    使用mvn help:system命令可查看所有环境变量;

    ${env.JAVA_HOME}表示JAVA_HOME环境变量的值;

代码中使用Maven属性

通过在application.yml 或者 application.properties 配置文件中设置对应的属性,然后再通过@Value()引用配置文件的变量。具体如下

  1. 第一步:在pom.xml中配置

    <build><resources><resource><!--使用maven渲染properties--><directory>src/main/resources</directory><filtering>true</filtering></resource></resources>
    </build>
    
  2. 第二步:在yml中使用@@使用maven变量;在properties中使用${}使用maven变量

    # 当前是application.yml配置文件userhome: @user.home@
    localRepostory: @settings.localRepository@
    
    # 当前是application.properties配置文件project.dir=${project.build.directory}
    
  3. 第三步:在java代码中使用

    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = Application.class, webEnvironment = SpringBootTest.WebEnvironment.RANDOM_PORT)
    @Slf4j
    public class ApplicationTest {@Value("${project.dir}")private String projectDir;@Value("${userhome}")private String userHome;@Value("${localRepostory}")private String localRepostory;@Value("${timestamp}")private String timestamp;@Testpublic void test(){System.out.println("projectDir~~~~~~~~~~~~~~~~~~~"+projectDir);System.out.println("userHome~~~~~~~~~~~~~~~~~~~"+userHome);System.out.println("localRepostory~~~~~~~~~~~~~~~~~~~"+localRepostory);System.out.println("timestamp~~~~~~~~~~~~~~~~~~~"+timestamp);}
    }
    控制台输出:projectDir~~~~~~~~~~~~~~~~~~~D:\workspace-boyun\boyunproduct_6.0\bocloud.cop\bocloud.cop.booter\target
    userHome~~~~~~~~~~~~~~~~~~~C:\\Users\\a
    localRepostory~~~~~~~~~~~~~~~~~~~D:\\MavenWarehouseBoCloud
    timestamp~~~~~~~~~~~~~~~~~~~20240123-1513
    

IDEA中使用Maven

在这里插入图片描述

相关文章:

6-Maven的使用

6-Maven的使用 常用maven命令 //常用maven命令 mvn -v //查看版本 mvn archetype:create //创建 Maven 项目 mvn compile //编译源代码 mvn test-compile //编译测试代码 mvn test //运行应用程序中的单元测试 mvn site //生成项目相关信息的网站 mvn package //依据项目生成 …...

WPF真入门教程32--WPF数字大屏项目实干

1、项目背景 WPF (Windows Presentation Foundation) 是微软的一个框架&#xff0c;用于构建桌面客户端应用程序&#xff0c;它支持富互联网应用程序&#xff08;RIA&#xff09;的开发。在数字大屏应用中&#xff0c;WPF可以用来构建复杂的用户界面&#xff0c;展示庞大的数据…...

数据可视化Python实现超详解【数据分析】

各位大佬好 &#xff0c;这里是阿川的博客&#xff0c;祝您变得更强 个人主页&#xff1a;在线OJ的阿川 大佬的支持和鼓励&#xff0c;将是我成长路上最大的动力 阿川水平有限&#xff0c;如有错误&#xff0c;欢迎大佬指正 Python 初阶 Python–语言基础与由来介绍 Python–…...

Maxkb玩转大语言模型

Maxkb玩转大语言模型 随着国外大语言模型llama3的发布&#xff0c;搭建本地个人免费“人工智能”变得越来越简单&#xff0c;今天博主分享使用Max搭建本地的个人聊天式对话及个人本地知识域的搭建。 1.安装Maxkb开源应用 github docker快速安装 docker run -d --namemaxkb -p 8…...

React Hooks 封装可粘贴图片的输入框组件(wangeditor)

需求是需要一个文本框 但是可以支持右键或者ctrlv粘贴图片&#xff0c;原生js很麻烦&#xff0c;那不如用插件来实现吧~我这里用的wangeditor插件&#xff0c;初次写初次用&#xff0c;可能不太好&#xff0c;但目前是可以达到实现需求的一个效果啦&#xff01;后面再改进吧~ …...

Wireshark TS | 应用传输丢包问题

问题背景 仍然是来自于朋友分享的一个案例&#xff0c;实际案例不难&#xff0c;原因也就是互联网线路丢包产生的重传问题。但从一开始只看到数据包截图的判断结果&#xff0c;和最后拿到实际数据包的分析结果&#xff0c;却不是一个结论&#xff0c;方向有点跑偏&#xff0c;…...

架构设计-web项目中跨域问题涉及到的后端和前端配置

WEB软件项目中经常会遇到跨域问题&#xff0c;解决方案早已是业内的共识&#xff0c;简要记录主流的处理方式&#xff1a; 跨域感知session需要解决两个问题&#xff1a; 1. 跨域问题 2. 跨域cookie传输问题 跨域问题 解决跨域问题有很多种方式&#xff0c;如使用springboot…...

==Redis淘汰策略(内存满了触发)==

好的&#xff0c;面试官。这个问题我需要从三个方面来回答。第一个方面&#xff1a; 当 Redis 使用的内存达到 maxmemory 参数配置的阈值的时候&#xff0c;Redis 就会根据配置的内存淘汰策略。 把访问频率不高的 key 从内存中移除。maxmemory 默认情况是当前服务器的最大内存…...

2024年高考作文考人工智能,人工智能写作文能否得高分

前言 众所周知&#xff0c;今年全国一卷考的是人工智能&#xff0c;那么&#xff0c;我们来测试一下&#xff0c;国内几家厉害的人工智能他们的作答情况&#xff0c;以及能取得多少高分呢。由于篇幅有限&#xff0c;我这里只测试一个高考真题&#xff0c;我们这里用百度的文心…...

Vue3学习记录第三天

Vue3学习记录第三天 背景说明学习记录Vue3中shallowReactive()和shallowRef()Vue3中toRaw()和markRaw()前端...语法Vue3中readonly()和shallowReadonly()函数前端的防抖 背景 之前把Vue2的基础学了, 这个课程的后面有简单介绍Vue3的部分. 学习知识容易忘, 这里仅简答做一个记录…...

数仓建模中的一些问题

​​​在数仓建设的过程中&#xff0c;由于未能完全按照规范操作&#xff0c; 从而导致数据仓库建设比较混乱&#xff0c;常见有以下问题&#xff1a; 数仓常见问题 ● 数仓分层不清晰&#xff1a;数仓的分层没有明确的逻辑&#xff0c;难以管理和维护。 ● 数据域划分不明确…...

spring整合kafka

原文链接&#xff1a;spring整合kafka_spring集成kafka-CSDN博客 1、导入依赖 <dependency><groupId>org.springframework.kafka</groupId><artifactId>spring-kafka</artifactId><version>2.5.10.RELEASE</version> </depende…...

【web前端】CSS样式

CSS应用方式 在标签 <h2 style"color: aquamarine">hello world!</h2> 在head标签中写style标签 <head><meta charset"UTF-8"><title>Title</title><style>.c1{height: 100px;}.c2{height: 200px;color: aqua;…...

【ARM Cache 与 MMU 系列文章 7.7 – ARMv8/v9 MMU Table 表分配原理及其代码实现 1】

请阅读【ARM Cache 及 MMU/MPU 系列文章专栏导读】 及【嵌入式开发学习必备专栏】 文章目录 MMU Table 表分配原理及其代码实现虚拟地址空间 Region的配置系统物理地址位宽获取汇编代码实现MMU Table 表分配原理及其代码实现 假设当前系统中需要映射多个region,其中第一个要映…...

AIGC之MetaHuman:HeyGen(基于AI驱动的视频生成平台+数字人)的简介、安装和使用方法、案例应用之详细攻略

AIGC之MetaHuman&#xff1a;HeyGen(基于AI驱动的视频生成平台数字人)的简介、安装和使用方法、案例应用之详细攻略 目录 HeyGen的简介 1、HeyGen是一款AI视频生成平台&#xff0c;它提供以下关键功能&#xff1a; HeyGen的安装和使用方法 1、使用方法 01创建或选择一个头…...

6.7-6.10作业

1. /*1.使用switch实现银行系统&#xff0c;默认用户为A&#xff0c;密码为1234&#xff0c;余额2000 如果登录失败&#xff0c;则直接结束 如果登录成功&#xff0c;则显示银行页面 1.查询余额 2.取钱 3.存钱 如果是1&#xff0c;则打印余额 如果是2&#xff0c;则输入取钱金…...

【Redis】Redis经典问题:缓存穿透、缓存击穿、缓存雪崩

目录 缓存的处理流程缓存穿透解释产生原因解决方案1.针对不存在的数据也进行缓存2.设置合适的缓存过期时间3. 对缓存访问进行限流和降级4. 接口层增加校验5. 布隆过滤器原理优点缺点关于扩容其他使用场景SpringBoot 整合 布隆过滤器 缓存击穿产生原因解决方案1.设置热点数据永不…...

从GPU到ASIC,博通和Marvell成赢家

ASIC市场上&#xff0c;博通预计今年AI收入将达到110亿美元以上&#xff0c;主要来自与Google和Meta的合作&#xff1b;Marvell预计2028年AI收入将达到70亿至80亿美元&#xff0c;主要来自与Amazon和Google的合作。 随着芯片设计和系统复杂性的增加&#xff0c;科技大厂将更多地…...

【java问答小知识6】一些Java基础的知识,用于想学习Java的小伙伴们建立一些简单的认知以及已经有经验的小伙伴的复习知识点

请解释Java中的双亲委派模型是什么&#xff1f; 回答&#xff1a;双亲委派模型是Java类加载机制的核心原则&#xff0c;它确保所有类加载器在尝试加载一个类之前&#xff0c;都会委托给它的父类加载器。 Java中的类路径&#xff08;Classpath&#xff09;是什么&#xff1f; 回…...

数学建模笔记

数学建模 定义角度 数学模型是针对参照某种事物系统的特征或数量依存关系&#xff0c;采用数学语言&#xff0c;概括地或近似地表述出的一种数学结构&#xff0c;这种数学结构是借助于数学符号刻画出来的某种系统的纯关系结构。从广义理解&#xff0c;数学模型包括数学中的各…...

shell编程(三)—— 控制语句

程序的运行除了顺序运行外&#xff0c;还可以通过控制语句来改变执行顺序。本文介绍bash的控制语句用法。 一、条件语句 Bash 中的条件语句让我们可以决定一个操作是否被执行。结果取决于一个包在[[ ]]里的表达式。 bash中的检测命令由[[]]包起来&#xff0c;用于检测一个条…...

反射学习记

Java 中的反射是什么意思&#xff1f;有哪些应用场景&#xff1f; 每个类都有⼀个 Class 对象&#xff0c;包含了与类有关的信息。当编译⼀个新类时&#xff0c;会产生一个同名的 .class 文件&#xff0c;该⽂件 内容保存着 Class 对象。类加载相当于 Class 对象的加载&a…...

使用Python操作Redis

大家好&#xff0c;在当今的互联网时代&#xff0c;随着数据量和用户量的爆发式增长&#xff0c;对于数据存储和处理的需求也日益增加。Redis作为一种高性能的键值存储数据库&#xff0c;以其快速的读写速度、丰富的数据结构支持和灵活的应用场景而备受青睐。本文将介绍Redis数…...

Vue-CountUp-V2 数字滚动动画库

安装&#xff1a; $ npm install --save countup.js vue-countup-v2示例如下&#xff1a; <template><div class"iCountUp"><ICountUp:delay"delay":endVal"endVal":options"options"ready"onReady"/>&…...

C语言详解(文件操作)1

Hi~&#xff01;这里是奋斗的小羊&#xff0c;很荣幸您能阅读我的文章&#xff0c;诚请评论指点&#xff0c;欢迎欢迎 ~~ &#x1f4a5;&#x1f4a5;个人主页&#xff1a;奋斗的小羊 &#x1f4a5;&#x1f4a5;所属专栏&#xff1a;C语言 &#x1f680;本系列文章为个人学习…...

Python Requests库详解

大家好&#xff0c;在现代网络开发中&#xff0c;与Web服务器进行通信是一项至关重要的任务。Python作为一种多才多艺的编程语言&#xff0c;提供了各种工具和库来简化这一过程。其中&#xff0c;Requests库作为Python中最受欢迎的HTTP库之一&#xff0c;为开发人员提供了简单而…...

Kafka 详解:全面解析分布式流处理平台

Kafka 详解&#xff1a;全面解析分布式流处理平台 Apache Kafka 是一个分布式流处理平台&#xff0c;主要用于构建实时数据管道和流式应用。它具有高吞吐量、低延迟、高可用性和高可靠性的特点&#xff0c;广泛应用于日志收集、数据流处理、消息系统、实时分析等场景。 &…...

RabbitMQ系列-rabbitmq无法重新加入集群,启动失败的问题

当前存在3个节点&#xff1a;rabbitmq5672、rabbitmq5673、rabbitmq5674 当rabbitmq5673节点掉线之后&#xff0c;重启失败 重启的时候5672节点报错如下&#xff1a; 解决方案 在集群中取消失败节点 rabbitmqctl forget_cluster_node rabbitrabbitmq5673删除失败节点5673的…...

postgresql之翻页优化

列表和翻页是所有应用系统里面必不可少的需求&#xff0c;但是当深度翻页的时候&#xff0c;越深越慢。下面是几种常用方式 准备工作 CREATE UNLOGGED TABLE data (id bigint GENERATED ALWAYS AS IDENTITY,value double precision NOT NULL,created timestamp with time zon…...

小白学Linux | 日志排查

一、windows日志分析 在【运行】对话框中输入【eventvwr】命令&#xff0c;打开【事件查看器】窗 口&#xff0c;查看相关的日志 管理员权限进入PowerShell 使用Get-EventLog Security -InstanceId 4625命令&#xff0c;可获取安全性日志下事 件 ID 为 4625&#xff08;失败登…...

成全视频免费观看在线看中国男篮直播回放/seo优化课程

1、DB2连接串&#xff08;默认端口为50000&#xff09; ProviderIBMDADB2;Databasefgws;HOSTNAMEsw00106;PROTOCOLTCPIP;PORT50000;uiddb2admin;pwdbitservice; 2、DB2客户端连接服务端 要在客户端建立一个连接服务器的连接&#xff0c;在db2中可以如下进行&#xff1a; 1.把远…...

传奇手游网站大全/网络营销课程个人总结3000字

引用计数是Python进行垃圾回收的主要技术之一。当一个对象的引用计数归零的时候&#xff0c;它就会被Python的垃圾回收清理掉。 以下情况导致对象引用计数1: 对象被创建&#xff0c;例如a2 对象被引用&#xff0c;ba 对象被作为参数&#xff0c;传入到一个函数中 对象作为…...

外贸管理软件有哪些/百度seo分析工具

数据网络设备内部是运用数字逻辑来解释地址的。在创建或转发 IPv4 数据包时&#xff0c;必须从目的地址中提取出目的网络地址。这一步通过 AND 运算来完成。 对 IPv4 主机地址同其子网掩码执行 AND 逻辑运算&#xff0c;可以确定该主机相关联的网络地址。地址和子网掩码之间的 …...

网站推广对企业的优势/网站搜索引擎优化主要方法

fackbook创始人爱读的两本 百年孤独 http://blog.csdn.net/c1782746138/article/details/47419827...

做购物平台网站需要注意什么/十大场景营销案例

VFIO-PCI驱动作为PCIE驱动&#xff0c;在原来的PCIE驱动卸载后&#xff0c;加载VFIO-PCI驱动&#xff0c;与内核之前扫描到的PCIE设备匹配&#xff0c;触发vfio_pci_probe()&#xff0c;进行本驱动的初始化。该驱动提供了用户态访问PCIE设备的配置空间/BAR空间/中断等资源接口&…...

做会计网站的流程图/如何优化网络

2.6 相对和绝对路径 绝对路径: 从根开始的路径,例如下图中的 /etc/sysconfig/network-scripts/ 就是一个绝对路径:相对路径: 相对于当前目录所在位置的路径,例如下图,.ssh目录位于当前目录下,通过cd .ssh可进入该目录, 其中的.ssh就是相对路径:区别:不管当前在何目录下,通过绝对…...