Maven全解析:从基础到精通的实战指南

  1. 概念:
    1. Maven 是跨平台的项目管理工具。主要服务基于 Java 平台的构建,依赖管理和项目信息管理
    2. 项目构建:高度自动化,跨平台,可重用的组件,标准化的流程
  2. 依赖管理:
    1. 对第三方依赖包的管理,可以连接互联网下载项目所需第三方 jar 包
    2. 对自己开发的模块的管理,可以像引用第三方依赖包一样依赖自己项目的依赖包
  3. 项目构建:
    1. 项目构建:从编写源代码到编译、测试、运行、打包、部署的过程
    2. 传统项目和 Maven 项目架构的两种方式
      1. 传统方式:
        1. IDEA 编写源代码和配置文件,对源代码进行编译,可以使用 Junit 进行单元测试,把项目打成 war 包,部署到 Tomcat 服务器中运行
      2. Maven 项目:
        1. Maven 将项目构建过程进项标准化,每个阶段都可以使用一个命令来完成
        2. 清理 ==>  编译 ==> 测试 ==> 报告 ==> 打包 ==> 部署
    3. 好处:
      1. 可以通过命令完成构建。(测试:使用 mvn  tomcat:run 的命令来运行项目)
      2. Maven 对每个构建阶段进行规范,有利于大型团队协作开发
  4. Maven 模型:

Maven 的第一个项目:

  1. 创建Maven 项目目录(注意以下所有引用包路径,设置成自己的包路径):
    1. src/main/java  ----存放项目的 .java 文件
    2. src/main/resoutces  ---存放项目资源文件,如 Spring,MyBatis 配置文件
    3. src/test/java   ---存放所有测试 .java 文件,如 JUnit 测试类
    4. src/test/resource   ---测试资源文件
    5. target   ---项目输出位置
    6. pom.xml
  2. 在项目 HelloFriend 根目录创建 pom.xml
    
    <project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
     <modelVersion>4.0.0</modelVersion>
     <groupId>cn.tx.maven</groupId>
     <artifactId>Hello</artifactId>
     <version>0.0.1-SNAPSHOT</version>
     <name>Hello</name>
       <dependencies>
                 <dependency>
                            <groupId>junit</groupId>
                            <artifactId>junit</artifactId>
                            <version>4.9</version>
                            <scope>test</scope>
                 </dependency>                 
                 
       </dependencies>
    </project>
  3. 创建 Hello.java 文件
    package 自己的包路径;
    public class Hello {
       public StringsayHello(String name){
                 return"Hello "+name+"!";
       }
    }
  4. 创建 HelloTest.java 文件
    1. 在 src/test/java/···/maven 目录下新建测试文件 HelloTest.java
      
      package 包路径;
      import org.junit.Test;
      import static junit.framework.Assert.*;
      public class HelloTest {
         @Test
         public void testHello(){
                   Hello hello = newHello();
                   String results =hello.sayHello("maven");
                   assertEquals("Hellomaven!",results);              
         }
      }
  5. 进行 Maven 的项目操作:
    1. 当前文件情况:
    2. 打开 cmd(可能需要管理员模式),进入 Hello 项目根目录执行 mvn compile 命令,查看根目录变化
    3. cmd 中继续录入 mvn  clean 命令,然后再次查看根目录变化
    4. cmd 中继续录入 mvn clean  compile 命令,然后再次查看根目录变化
    5. cmd 中录入 mvn  clean  test 命令,查看根目录变化
    6. cmd 中录入 mvn  clean  package 命令,查看根目录变化
    7. cmd 中录入 mvn  clean  install 查看仓库会把项目安装到仓库里

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/963556.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用LLaMA-Factory对AI进行认知的微调

使用LLaMA-Factory对AI进行认知的微调 引言1. 安装LLaMA-Factory1.1. 克隆仓库1.2. 创建虚拟环境1.3. 安装LLaMA-Factory1.4. 验证 2. 准备数据2.1. 创建数据集2.2. 更新数据集信息 3. 启动LLaMA-Factory4. 进行微调4.1. 设置模型4.2. 预览数据集4.3. 设置学习率等参数4.4. 预览…

复制粘贴小工具——Ditto

在日常工作中&#xff0c;复制粘贴是常见的操作&#xff0c;但Windows系统自带的剪贴板功能较为有限&#xff0c;只能保存最近一次的复制记录&#xff0c;这对于需要频繁复制粘贴的用户来说不太方便。今天&#xff0c;我们介绍一款开源、免费且功能强大的剪贴板增强工具——Dit…

无人机图传模块 wfb-ng openipc-fpv,4G

openipc 的定位是为各种模块提供底层的驱动和linux最小系统&#xff0c;openipc 是采用buildroot系统编译而成&#xff0c;因此二次开发能力有点麻烦。为啥openipc 会用于无人机图传呢&#xff1f;因为openipc可以将现有的网络摄像头ip-camera模块直接利用起来&#xff0c;从而…

Redis代金卷(优惠卷)秒杀案例-多应用版

Redis代金卷(优惠卷)秒杀案例-单应用版-CSDN博客 上面这种方案,在多应用时候会出现问题,原因是你通过用户ID加锁 但是在多应用情况下,会出现两个应用的用户都有机会进去 让多个JVM使用同一把锁 这样就需要使用分布式锁 每个JVM都会有一个锁监视器,多个JVM就会有多个锁监视器…

国产之光DeepSeek架构理解与应用分析

目录 初步探索DeepSeek的设计 一、核心架构设计 二、核心原理与优化 三、关键创新点 四、典型应用场景 五、与同类模型的对比优势 六、未来演进方向 从投入行业生产的角度看 一、DeepSeek的核心功能扩展 二、机械电子工程产业中的具体案例 1. 预测性维护&#xff08;Predictive…

基于微信小程序的医院预约挂号系统设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导&#xff0c;欢迎高校老师/同行前辈交流合作✌。 技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;…

架构技能(四):需求分析

需求分析&#xff0c;即分析需求&#xff0c;分析软件用户需要解决的问题。 需求分析的下一环节是软件的整体架构设计&#xff0c;需求是输入&#xff0c;架构是输出&#xff0c;需求决定了架构。 决定架构的是软件的所有需求吗&#xff1f;肯定不是&#xff0c;真正决定架构…

【学习笔记】深度学习网络-正则化方法

作者选择了由 Ian Goodfellow、Yoshua Bengio 和 Aaron Courville 三位大佬撰写的《Deep Learning》(人工智能领域的经典教程&#xff0c;深度学习领域研究生必读教材),开始深度学习领域学习&#xff0c;深入全面的理解深度学习的理论知识。 在之前的文章中介绍了深度学习中用…

c/c++高级编程

1.避免变量冗余初始化 结构体初始化为0&#xff0c;等价于对该内存进行一次memset&#xff0c;对于较大的结构体或者热点函数&#xff0c;重复的赋值带来冗余的性能开销。现代编译器对此类冗余初始化代码具有一定的优化能力&#xff0c;因此&#xff0c;打开相关的编译选项的优…

Vue 入门到实战 七

第7章 渲染函数 目录 7.1 DOM树 7.2 什么是渲染函数 7.3 h()函数 7.3.1 基本参数 7.3.2 约束 7.3.3 使用JavaScript代替模板功能 7.1 DOM树 7.2 什么是渲染函数 在多数情况下&#xff0c;Vue推荐使用模板template来创建HTML。然而在一些应用场景中&#xff0c;需要使用J…

小程序-基础加强-自定义组件

前言 这次讲自定义组件 1. 准备今天要用到的项目 2. 初步创建并使用自定义组件 这样就成功在home中引入了test组件 在json中引用了这个组件才能用这个组件 现在我们来实现全局引用组件 在app.json这样使用就可以了 3. 自定义组件的样式 发现页面里面的文本和组件里面的文…

MySQL5.5升级到MySQL5.7

【卸载原来的MySQL】 cmd打开命令提示符窗口&#xff08;管理员身份&#xff09;net stop mysql&#xff08;先停止MySQL服务&#xff09; 3.卸载 切换到原来5.5版本的bin目录&#xff0c;输入mysqld remove卸载服务 测试mysql -V查看Mysql版本还是5.5 查看了环境变量里的…

【memgpt】letta 课程4:基于latta框架构建MemGpt代理并与之交互

Lab 3: Building Agents with memory 基于latta框架构建MemGpt代理并与之交互理解代理状态,例如作为系统提示符、工具和agent的内存查看和编辑代理存档内存MemGPT 代理是有状态的 agents的设计思路 每个步骤都要定义代理行为 Letta agents persist information over time and…

DeepSeek-R1模型1.5b、7b、8b、14b、32b、70b和671b有啥区别?

deepseek-r1的1.5b、7b、8b、14b、32b、70b和671b有啥区别&#xff1f;码笔记mabiji.com分享&#xff1a;1.5B、7B、8B、14B、32B、70B是蒸馏后的小模型&#xff0c;671B是基础大模型&#xff0c;它们的区别主要体现在参数规模、模型容量、性能表现、准确性、训练成本、推理成本…

【TCP协议】流量控制 滑动窗口 拥塞控制

目录 说明&#xff1a; 流量控制 为什么要流量控制 什么是流量控制 如何控制流量&#xff1a;16位窗口大小 如果主机 B 一直没空间呢&#xff1f;标志位 PSH 滑动窗口&#xff1a;全面认识序号和确认序号 为什么需要滑动窗口&#xff1f; 理解滑动窗口 序号和确认序号…

K8S集群架构及主机准备

本次集群部署主机分布K8S集群主机配置主机静态IP设置主机名解析ipvs管理工具安装及模块加载主机系统升级主机间免密登录配置主机基础配置完后最好做个快照备份 2台负载均衡器 Haproxy高可用keepalived3台k8s master节点5台工作节点(至少2及以上)本次集群部署主机分布 K8S集群主…

三、js笔记

(一)JavaScript概述 1、发展历史 ScriptEase.(客户端执行的语言):1992年Nombas开发出C-minus-minus(C--)的嵌入式脚本语言(最初绑定在CEnvi软件中).后将其改名ScriptEase.(客户端执行的语言)Javascript:Netscape(网景)接收Nombas的理念,(Brendan Eich)在其Netscape Navigat…

穷举vs暴搜vs深搜vs回溯vs剪枝系列一>单词搜索

题解如下 题目&#xff1a;解析决策树&#xff1a;代码设计&#xff1a; 代码&#xff1a; 题目&#xff1a; 解析 决策树&#xff1a; 代码设计&#xff1a; 代码&#xff1a; class Solution {private boolean[][] visit;//标记使用过的数据int m,n;//行&#xff0c;列char…

使用Pygame制作“圣诞树”

1. 前言 圣诞节到来之际&#xff0c;来给自己写一个圣诞树小动画吧&#xff01;我们可以利用 Pygame 的绘图功能&#xff0c;轻松地在 2D 屏幕上绘制各种几何形状&#xff0c;并为圣诞树加上灯光闪烁、装饰品等效果。本篇将带领你实现一个简易版本的“屏幕圣诞树”&#xff0c…

Windows电脑本地部署运行DeepSeek R1大模型(基于Ollama和Chatbox)

文章目录 一、环境准备二、安装Ollama2.1 访问Ollama官方网站2.2 下载适用于Windows的安装包2.3 安装Ollama安装包2.4 指定Ollama安装目录2.5 指定Ollama的大模型的存储目录 三、选择DeepSeek R1模型四、下载并运行DeepSeek R1模型五、使用Chatbox进行交互5.1 下载Chatbox安装包…