Maven初级(二)

news2024/11/15 8:34:47

目录

四.第一个Maven项目(手工制作)

4.1 Maven工程目录结构

4.2 手工制作Maven项目的步骤

4.2.1 手工制作项目的目录结构或使用插件创建项目的目录结构

4.2.2 在项目的src同层目录下创建pom.xml文件

4.2.3 在cmd中使用Maven项目构建命令

四.第一个Maven项目(IDEA生成)

4.1 idea中配置maven

4.2 idea中创建一个maven项目

4.2.1 手工创建

4.2.2 根据原型创建

4.3 web项目安装Tomcat插件

五.依赖管理

5.1 依赖配置

5.2 依赖传递

5.2.1 依赖传递分类

5.2.2 依赖传递冲突问题

5.3 可选依赖

5.4 排除依赖

5.5 依赖范围

5.5.1 scope标签

5.5.2 依赖范围的传递性(了解):


四.第一个Maven项目(手工制作)

4.1 Maven工程目录结构

4.2 手工制作Maven项目的步骤

4.2.1 手工制作项目的目录结构或使用插件创建项目的目录结构

1.手工制作项目的目录结构

非常简单,就是按照上图手工把项目结构创建出来

2.使用插件创建项目的目录结构

模板:

  mvn archetype:generate

 -DgroupId=src/main/java和src/test/java目录下的包

 -DartifactId=项目名称

 -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot

 -DinteractiveMode=false

①创建java工程

mvn archetype:generate -DgroupId=com.itheima -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false

②创建web工程

mvn archetype:generate -DgroupId=com.itheima -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false

4.2.2 在项目的src同层目录下创建pom.xml文件

pom.xml文件的内容如下:

​
<?xml version="1.0" encoding="UTF-8"?>

<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">

<!--指定pom的模型版本-->

<modelVersion>4.0.0</modelVersion>

<!-- 打包方式,java工程打包为jar,web工程打包为jar-->

<packaging>war</packaging>

<!--本项目的坐标-->

<!--组织id-->

<groupId>com.itheima</groupId>

<!--项目id,就是你的项目名称-->

<artifactId>web01</artifactId>

<!--版本号 -->

<version>1.0-SNAPSHOT</version>

<!--设置当前工程的所有依赖-->

<dependencies>

    <!-- 具体的依赖-->

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.12</version>

    </dependency>

</dependencies>

<!-- 构建-->

<build>

<!-- 设置的所有的插件-->

    <plugins>

        <!-- 具体的插件配置-->

        <plugin>

        <groupId>org.apache.tomcat.maven</groupId>

        <artifactId>tomcat7-maven-plugin</artifactId>

        <version>2.1</version>

        </plugin>

    </plugins>

</build>

</project>

​

4.2.3 在cmd中使用Maven项目构建命令

可以一次执行多个命令,使用空格分隔。在命令提示符窗口输入以下命令:

1. mvn clean,清理(删除上次编译遗留的结果,即target文件)

2. mvn compile,编译java源程序,会在src的同级目录下生成target目录,里面存放字节码文件

3. mvn package ,打包(打包指令是先编译源程序,在编译测试程序,再执行测试程序,最后对源程序进行打包)

4. mvn install,安装(将源程序打包下载到本地仓库中,此步骤包括上述步骤)

5. mvn test,编译测试源程序Test,也会在src的同级目录下生成target目录,里面存放字节码文件

四.第一个Maven项目(IDEA生成)

4.1 idea中配置maven

首先在File的setting里配置Maven,配置内容包括maven的安装路径和setting.xml的路径

4.2 idea中创建一个maven项目

在new Moudle里找到下图

4.2.1 手工创建

4.2.2 根据原型创建

Java项目的原型结尾是quickstart,web项目的原型结尾是webapp

4.3 web项目安装Tomcat插件

若创建的是web项目,则给web项目安装tomcat7插件

在中央仓库找出插件坐标,复制到pom.xml中,具体代码如下

<!-- 构建-->

<build>

    <!-- 设置的所有的插件-->

    <plugins>

        <!-- 具体的插件配置-->

        <plugin>

            <groupId>org.apache.tomcat.maven</groupId>

            <artifactId>tomcat7-maven-plugin</artifactId>

            <version>2.1</version>

        </plugin>

    </plugins>

</build>

五.依赖管理

5.1 依赖配置

在setting.xml文件中配置

<!--设置当前工程的所有依赖-->

<dependencies>

    <!-- 具体的依赖-->

    <dependency>

        <groupId>junit</groupId>

        <artifactId>junit</artifactId>

        <version>4.12</version>

    </dependency>

</dependencies>

5.2 依赖传递

5.2.1 依赖传递分类

因为依赖具有传递性,所以延伸出二种依赖,这二种依赖都是相对的

1.直接依赖:在当前项目中通过依赖配置建立的依赖关系。

2.间接依赖:被依赖的资源如果依赖其他资源,当前项目间接依赖其他资源。

5.2.2 依赖传递冲突问题

路径优先:当依赖中出现相同的资源时,层级越深,优先级越低,层级越浅,优先级越高。

声明优先:当资源在相同层级被依赖时,配置顺序靠前的覆盖配置顺序靠后的。

特殊优先:当同级配置了相同资源的不同版本,后配置的覆盖先配置的。

5.3 可选依赖

可选依赖是指对外隐藏当前所依赖的资源--不透明,在pom.xml中配置,如下图

5.4 排除依赖

排除依赖指主动断开依赖的资源,被排除的资源无需指定版本,在pom.xml中配置,如下图

5.5 依赖范围

5.5.1 scope标签

依赖的jar默认情况可以在任何地方使用,可以通过scope标签设定其作用范围(scope标签放在依赖资源的坐标下边)

<scope>compile</scope>       默认

<scope>test</scope>             测试程序范围内有效(test文件夹范围内)

<scope>provided</scope>     主程序范围内有效(main文件夹内)

<scope>runtime</scope>       是否参与打包

如下图:

5.5.2 依赖范围的传递性(了解):

带有依赖范围的资源在进行传递时,作用范围将受到影响,如下图

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

自动驾驶感知——物体检测与跟踪算法|4D毫米波雷达

文章目录1. 物体检测与跟踪算法1.1 DBSCAN1.2 卡尔曼滤波2. 毫米波雷达公开数据库的未来发展方向3. 4D毫米波雷达特点及发展趋势3.1 4D毫米波雷达特点3.1.1 FMCW雷达角度分辨率3.1.2 MIMO ( Multiple Input Multiple Output)技术3.2 4D毫米波雷达发展趋势3.2.1 芯片级联3.2.2 专…

[docker]-docker安装prometheus和grafana

导语&#xff1a;需要排查部分出问题的私有化环境。直接上一个docker的node_exporter prometheus grafana 最方便。 所用到的安装包在最下面的云盘。 解压安装自定义node_exporter # 这个abc的包名可以忽略 tar zxvf abc.tgz cd abc cp node_exporter /usr/local/ cat <…

Mybatis 动态sql的编写|开启二级缓存

❤️作者主页&#xff1a;微凉秋意 ✅作者简介&#xff1a;后端领域优质创作者&#x1f3c6;&#xff0c;CSDN内容合伙人&#x1f3c6;&#xff0c;阿里云专家博主&#x1f3c6; ✨精品专栏&#xff1a;数据结构与课程设计 &#x1f525;系列专栏&#xff1a;javaweb 文章目录前…

Linux-主要目录

/: 根目录&#xff0c;一般根目录下只存放目录&#xff0c;在Linux下有且只有一个根目录&#xff0c;所有的东西都是从这里开始当在终端里输入 /home,其实是在告诉电脑&#xff0c;先从/&#xff08;根目录&#xff09;开始&#xff0c;再进入到home目录/bin、/usr/bin:可执行二…

java基于ssm的旅游景点门票预订网站

通过本系统&#xff0c;能够实现用户进行登录后&#xff0c;在网站上对旅游景点信息进行门票预订&#xff0c;也可以通过在线留言系统&#xff0c;了解景点相关信息&#xff0c;为用户提供全方位的服务&#xff0c;同时为节省用户的时间&#xff0c;本系统采用分地名的方式&…

2022尚硅谷SSM框架跟学(七)Spring MVC基础二

2022尚硅谷SSM框架跟学 七 Spring MVC基础二4.SpringMVC获取请求参数4.1.通过ServletAPI获取4.2.通过控制器方法的形参获取请求参数4.3.RequestParam4.4.RequestHeader4.5.CookieValue4.6.通过POJO获取请求参数4.7.解决获取请求参数的乱码问题5.域对象共享数据5.1.使用ServletA…

LCX端⼝转发

LCX是一款十分经典的内网端口转发工具&#xff0c;基于Socket套接字&#xff0c;具有端口转发和端口映射的功能。但是目前很多杀软已经将其加入了特征库&#xff0c;在实际利用的时候需要自行做免杀处理。lcx有三个功能&#xff1a;第一个功能将本地端口转发到本地另一个端口上…

红米10A 一键root教程 跳过 秒过 168小时解锁BL 限制完美面具root保数据救黑砖刷机 解决无法解锁BL 新版本问题

新版本红米10A 无法秒解锁BL。root bootloader 要刷机、线刷救砖、获取Root权限都需要解除bootloader锁 我们称解除刷机限制的这个操作就叫解锁BL&#xff0c;只有解锁BL后&#xff0c;才可以进行刷机、刷Root权限等等一些列的操作。&#xff08;注&#xff1a;bootloader锁不…

Spring为什么这么火 之 五大类注解

目录 前言 存储Bean对象 1、配置扫描路径 2、将Bean存储到容器中 2.1、5大注解实现&#xff08;Controller、Service、Repository、Component、Configuration) Controller Service Repository Configuration Component 为什么需要五个类注解&#xff1f; 五大类注解的关…

Jmeter分布式

Jmeter的分布式控制&#xff0c;就是指远程启动功能。执行原理&#xff1a; 1、一台作为调度机(master)&#xff0c;其它机器做为执行机(slave) 2、执行时&#xff0c;master会把脚本发送到每台slave上&#xff0c;slave 拿到脚本后就开始执行 3、执行完成后&#xff0c;sla…

go语言编译文件踩坑

目录 1 no required module provides package xxx go.mod file not found in current directory or any parent directory; see go help modules 方式1 执行 go env -w GO111MODULEauto后再编译 方式2 创建go.mod 2 报错syscall.go:84:16: undefined: unsafe.Slice 3 b…

ArrayList集合类和对象数组案例区别讲解

目录 对象数组案例讲解 集合 ArrayList类的构造方法和成员方法 对象数组案例讲解 创建一个学生数组&#xff0c;存储三个学生对象并遍历 package com.demo01; /*** * author 无限嚣张菜菜* 分析&#xff1a;* A&#xff1a;定义学生类* B&#xff1a;创建学生数组* C&am…

关于PKI 你了解多少

公钥基础设施PKI&#xff08;Public Key Infrastructure&#xff09;&#xff0c;是利用公开密钥机制建立起来的基础设施&#xff0c;在信息互联互通时代&#xff0c;可以说它是创建、颁发、管理、注销公钥证书所涉及的所有软件、硬件集合体。对拥有庞大用户的系统来说&#xf…

Activity的5种启动模式详解(新增singleInstancePerTask类型)

前言 看到这个标题的时候&#xff0c;也许你会认为我写错了&#xff0c;Activity不是只有四种启动模式吗&#xff1f;分别为startard,singleTop,singleTask,singleInstance这四种。 一般来说是四种&#xff0c;但是android12的时候新加入了singleInstancePerTask类型&#xf…

【金三银四系列】之MySql面试突击(2023版)

Mysql金三银四面试突击班 1.Bin log是什么&#xff0c;有什么用&#xff1f;&#xff08;数据库被人干掉了怎么办&#xff1f;&#xff09; 1.bin Log: 数据恢复 主从复制 MySQL Server 层也有一个日志文件&#xff0c;叫做 binlog&#xff0c;它可以被所有的存储引擎使用。…

PRD-产品需求说明文档

产品需求说明文档&#xff08;PRD&#xff09;可以将产品设计思路清晰的展现给团队人员&#xff0c;便于他们快速理解产品。产品需求说明文档如何写呢&#xff1f;本文希望能够得到高人指点&#xff0c;本人是小白&#xff0c;同时不建议其他小白参考此文以免造成干扰。 包括文…

Spark 学习案例

案例1&#xff1a;搜索引擎日志分析 数据来源&#xff1a;使用搜狗实验室提供的【用户查询日志】数据。使用Saprk框架&#xff0c;将数据封装到RDD中进行数据处理分析。 数据网址&#xff1a;数据地址 这个地址可能过期了&#xff0c;需要的伙伴可以私聊博主。 数据格式&…

css清除浮动的方法

浮动的盒子会脱离标准流&#xff0c;不占有自己原先的位置&#xff0c;导致下面的其他标签往上移动 此时&#xff0c;可以给浮动的盒子添加一个父盒子&#xff08;块级&#xff09;&#xff0c;并设置高度&#xff0c;就可以避免下面的其他标签上浮 但是有时候父盒子不能设置高…

pycharm:新建虚拟环境和安装依赖

前言 小编深有体会&#xff0c;在刚开始用pycharm跑python的项目的时候&#xff0c;一时间不知道如何下手&#xff0c;特别是作为一个新手小白&#xff0c;这里总结了一份新手避坑指南&#xff0c;主要是新建虚拟环境&#xff08;生成一个项目对应的解释器&#xff09;以及安装…

温度预测 python | 使用 Python 可以使用机器学习模型进行温度预测

使用 Python 可以使用机器学习模型进行温度预测。常用的模型有回归分析、随机森林等。使用前需要准备足够的历史数据并进行特征工程&#xff0c;构建模型并进行训练&#xff0c;最后使用预测结果。 文章目录温度预测 回归分析导入必要的库&#xff1a;读取温度数据&#xff1a;…