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

news/2025/2/3 6:19:09 标签: maven, java
  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 文件
    java">package 自己的包路径;
    public class Hello {
       public StringsayHello(String name){
                 return"Hello "+name+"!";
       }
    }
  4. 创建 HelloTest.java 文件
    1. 在 src/test/java/···/maven 目录下新建测试文件 HelloTest.java
      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 查看仓库会把项目安装到仓库里

http://www.niftyadmin.cn/n/5840541.html

相关文章

Windows11 不依赖docker搭建 deepseek-R1 1.5B版本(附 Open WebUi搭建方式)

零、前言 过年这几天发现 DeepSeek 非常火&#xff0c;试用了一下发现确实不错。与豆包、kimi、perplexity 这些相比完全不是一个次元的存在&#xff0c;特别是用ta写文章的时候体验非常好。所以试着自己搭一个环境。 一、安装 Ollama和DeepSeek-R1 我的安装方式很简单&#xf…

AWS EMR上的Spark日志实时搜索关键指标网页呈现的设计和实现

为了在AWS EMR上实现基于Spark的大数据日志处理系统&#xff0c;并通过Kafka、ElasticSearch和Python Flask构建实时搜索与可视化平台&#xff0c;以下是详细的设计与实现方案&#xff1a; 一、架构设计 #mermaid-svg-yDbFJA2AyZXqUInz {font-family:"trebuchet ms",…

gitea - fatal: Authentication failed

文章目录 gitea - fatal: Authentication failed概述run_gitea_on_my_pkm.bat 笔记删除windows凭证管理器中对应的url认证凭证启动gitea服务端的命令行正常用 TortoiseGit 提交代码备注END gitea - fatal: Authentication failed 概述 本地的git归档服务端使用gitea. 原来的用…

BUUCTF_[安洵杯 2019]easy_web(preg_match绕过/MD5强碰撞绕过/代码审计)

打开靶场&#xff0c;出现下面的静态html页面&#xff0c;也没有找到什么有价值的信息。 查看页面源代码 在url里发现了img传参还有cmd 求img参数 这里先从img传参入手&#xff0c;这里我发现img传参好像是base64的样子 进行解码&#xff0c;解码之后还像是base64的样子再次进…

为何 git 默认是 master分支,而github默认是main分支(DeepSeek问答)

为何 git 默认是 master分支&#xff0c;而github默认是main分支 Git 和 GitHub 在默认分支名称上的差异源于历史背景和社会因素的变化。 Git 的 master 分支 历史原因&#xff1a;Git 由 Linus Torvalds 于 2005 年创建&#xff0c;最初使用 master 作为默认分支名称&#x…

封装常用控制器

封装常用控制器 // // BaseLogicController.swift // 项目中通用的逻辑控制器import UIKit import TangramKitclass BaseLogicController: BaseCommonController {/// 根容器var rootContainer:TGBaseLayout!/// 头部容器var superHeaderContainer:TGBaseLayout!var superHea…

BUUCTF_[网鼎杯 2020 朱雀组]phpweb(反序列化绕过命令)

打开靶场&#xff0c;,弹出上面的提示,是一个警告warning,而且页面每隔几秒就会刷新一次,根据warning中的信息以及信息中的时间一直在变,可以猜测是date()函数一直在被调用 查看页面源代码&#xff0c;没有什么有用的信息 Burp抓包一下 调用了date()函数并回显在页面上,参数fu…

Python-基于PyQt5,wordcloud,pillow,numpy,os,sys等的智能词云生成器(最终版)

前言:日常生活中,我们有时后就会遇见这样的情形:我们需要将给定的数据进行可视化处理,同时保证呈现比较良好的量化效果。这时候我们可能就会用到词云图。词云图(Word cloud)又称文字云,是一种文本数据的图片视觉表达方式,一般是由词汇组成类似云的图形,用于展示大量文…