Maven项目搭建

article/2025/9/17 1:44:09

我们回顾一下maven规范的目录结构:

 1、手动搭建Maven项目

我们先使用手动的方式来创建maven项目

(1)在D盘下创建目录mvnproject并进入该目录,作为我们的操作目录

(2)创建我们的maven项目,创建一个目录project-java作为我们的项目文件夹,并进入到该目录

(3)创建java代码(源代码)所在目录,即创建src/main/java

(4)创建配置文件所在目录,即创建src/main/resources

(5)创建测试源代码所在目录,即创建src/test/java

(6)创建测试存放配置文件存放目录,即src/test/resources

(7)在src/main/java中创建一个包(注意在windos文件夹下就是创建目录)com/itheima,在该目录下创建Demo.java文件,作为演示所需java程序,内容如下

package com.itheima;public class Demo{public String say(String name){System.out.println("hello "+name);return "hello "+name;}
}

(8)在src/test/java中创建一个测试包(目录)com/itheima,在该包下创建测试程序DemoTest.java

package com.itheima;import org.junit.*;
public class DemoTest{@Testpublic void testSay(){Demo d = new Demo();String ret = d.say("maven");Assert.assertEquals("hello maven",ret);}}

(9)在project-java/src下创建pom.xml文件,编辑如下

<?xml version="1.0" encoding="UTF-8"?>
<projectxmlns="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/maven-v4_0_0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.itheima</groupId><artifactId>project-java</artifactId><version>1.0</version><packaging>jar</packaging><dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency></dependencies></project>

通过前面的操作,我们已经搭建好了maven的项目结构,下面要通过maven来构建我们的项目

maven的构建命令以mvn开头,后面添加功能参数,可以一次性执行多个命令,用空格分离

mvn compile:编译

mvn clean:清理

mvn test:测试

mvn package:打包

mvn install:安装到本地仓库

下面我们来进行操作:

(1)在项目project-java所在的DOS命令窗口下执行mvn compile进行源码编译,当然首次执行需要先下载相关插件

 编辑结果如下:

 编译完成后在项目project-java下多了一个目录target,在这个目录下就存放的是maven编译好的一些东西

 我们可以进入到target目录查看

 

其中生成的classes目录就是编译好的字节码文件

(2)当然如果我们想清理掉这些东西,我们只需执行mvn clean命令即可,清理掉后target目录也就消失了

(3)如果我们要执行测试包中的测试程序,我们只需执行mvn test命令即可

此时在看target目录会多一些东西

其中产生的test-classes就是测试代码的字节码文件,surefire-reports是它产生的测试报告

(4)使用mvn package命令进行打包,如下

 

 在生成的target目录中可以看到打包的结果

 

当然,如果仔细看DOS窗口输出的我们会发现,mvn package命令的时候maven会把前面两个命令mvn compile,mvn test都执行一遍

(5)使用mvn install命令进行安装,将项目打好的包存入本地仓库

 仔细查看输出会发现mvn install命令执行的时候也会将前面的命令都执行一遍

此时我们可以去本地仓库中查找,如何查找?这个很重要

maven是按照groupId/artifactId/version的结构在本地仓库进行存储

 前面我们是通过手动的方式创建的maven项目,相对来说比较的麻烦,maven本身也是这样觉得的,因此maven本身就给我们提供了相关的插件来帮助我们快速构建项目,当然这是一些命令:

 这些命令不用记,因为实际操作的时候也用不着,因为实际开发的时候我们基本都是用过一些IDE工具来进行项目开发,这些IDE工具基本都集成了Maven,我们操作起来非常简单。

 

2、IDEA工具搭建maven项目 

2.1、不使用原型创建项目

(1)在IDEA中配置Maven

 (2)创建maven工程

(3)填写本项目的坐标

(4)查看各目录颜色标记是否正确

 (5)IDEA右侧有一个maven管理界面,可点开查看

 (6)在项目的pom.xml文件中添加项目资源依赖

<dependencies><dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version></dependency>
</dependencies>

(7)创建源代码:com.itheima.Demo

package com.itheima;
public class Demo{public String say(String name){System.out.println("hello "+name);return "hello "+name;}
}

 (8)创建测试代码:com.itheima.DemoTest

package com.itheima;import org.junit.Assert;
import org.junit.Test;public class DemoTest{@Testpublic void testSay(){Demo d = new Demo();String ret = d.say("maven");Assert.assertEquals("hello maven",ret);}}

然后可以进行测试运行

运行的时候可以编辑运行模板:

 然后点击运行:

 

 

2.2、使用原型创建项目

  • 首先我们来看普通的java工程如何创建:

(1)创建maven项目的时候选择使用原型骨架

(2)创建完成后发现通过这种方式缺少一些目录,如下图

我们需要手动去补全目录,并且要对补全的目录进行标记,切记

 

  • 然后我们在来看web工程如何创建:

(1)选择web对应的原型骨架

有很多的webapp原型骨架,选择哪个基本都差不多,包括前面创建普通项目也是一样,quickstart原型也有很多

(2)和前面创建普通项目一样,通过原型创建web项目得到的目录结构是不全的,因此需要我们自行补全,同时要标记正确,最终需要得到如下结构

(3)web工程创建好之后需要启动运行,需要使用一个tomcat插件来运行我们的项目,在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"><modelVersion>4.0.0</modelVersion>	<!--指定模型版本--><groupId>com.itheima</groupId> 	<!--组织id--><artifactId>web01</artifactId>	<!--项目id--><version>1.0-SNAPSHOT</version>	<!--版本号:release完成版,snapshot开发版--><packaging>war</packaging>	<!--打包方式,web工程打包为war,Java工程打包为jar--><name>web01 Maven Webapp</name><url>http://www.example.com</url><properties><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><!--设置当前工程所有的依赖--><dependency><!--具体的依赖--><groupId>junit</groupId><artifactId>junit</artifactId><version>4.12</version><scope>test</scope></dependency></dependencies><!--构建--><build><finalName>web01</finalName><!--设置插件--><plugins><!--具体的插件配置--><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version></plugin></plugins></build>
</project>

(4)插件配置好后,在IDEA右侧maven-project操作面板上可以看到该插件,并且可以利用该插件启动项目

运行后该插件会给我们一个可运行地址:

如果我们想更换端口,只需要在pom.xml中配置该插件即可

<plugins><plugin><groupId>org.apache.tomcat.maven</groupId><artifactId>tomcat7-maven-plugin</artifactId><version>2.1</version><configuration><port>80</port></configuration></plugin>

 (5)同时为了运行方便我们也可以创建运行模板:

 

 

 

 

 

 

 


http://chatgpt.dhexx.cn/article/tqL6YZ56.shtml

相关文章

如何创建Maven项目

1.什么是 maven maven是一个构建工具 功能&#xff1a; ① 把编译好的.class文件打包成一个.jar文件 ② 依赖管理&#xff08;一个复杂的程序通常会依赖第三方库&#xff09;使用的时候&#xff0c;需要把对应的jar包下载下来&#xff0c;导入工程中 2.如何创建maven项目 ma…

idea创建maven项目 [超详细]

一、背景。 IDEA是用于java语言开发的集成环境&#xff0c;并且经常用于maven、spring、MyBatis等项目的开发。今天将为大家介绍如何在IDEA中创建Maven项目。 二、idea创建maven项目。 1.首先打开IDEA后点击file->settings ,然后在VM Options内添加 -DarchetypeCatalogi…

Idea中创建maven项目(超详细)

Idea中创建maven项目 提示&#xff1a;前提条件时maven已经安装好&#xff0c;并且环境变量也配置完成&#xff0c;maven没安装好或者环境变量没有配置好的请参考我上一篇文章——maven的安装和配置 上篇博文链接&#xff1a;https://blog.csdn.net/zzvar/article/details/11…

maven入门:一个简单的maven项目

简介 Maven是一个用于项目管理的工具&#xff0c;其好处是为我们管理jar包的依赖版本&#xff0c;同时也方便的组合我们自己的代码模块。在入门前有两个概念先简单介绍一下&#xff0c;一个是坐标&#xff0c;另一个是仓库。 坐标&#xff1a;maven为每一个jar包或模块都定义…

Maven项目的介绍、入门搭建

Maven项目的介绍、入门搭建 一、什么是Maven项目 Maven 是 Apache 组织下的一个跨平台的项目管理工具&#xff0c;它主要用来帮助实现项目的构建、测试、打包和部署。Maven 提供了标准的软件生命周期模型和构建模型&#xff0c;通过配置就能对项目进行全面的管理。它的跨平台性…

Maven项目详解

目录 一、简介 二、准备工作 1、安装maven &#xff08;参考文章&#xff1a;maven下载安装详解&#xff09; 2、配置maven本地仓库 3、中央仓库 4、目录结构 5、POM&#xff08;Project Object Model&#xff09; 6、IDE配置 三、Maven项目创建步骤 1、在Eclipse中创…

Maven项目构建

Maven项目构建 一、Maven的介绍1.1 Maven的作用1.2 Maven仓库1.3 Maven目录及配置 二、Maven的使用2.1 Maven 工程的目录结构2.2 pom.xml配置文件 三、Maven多模块项目3.1 创建多模块项目3.2 父模块与子模块pom.xml 一、Maven的介绍 1.1 Maven的作用 Maven 的依赖管理 项目的…

如何使用 Maven 来创建项目(一篇文章就够了)

如何使用 Maven 来创建项目&#xff08;一篇文章就够了&#xff09; 1. Maven 简介1. 简介2. 项目构建3. 项目构建工具 2. Maven 的四大特性1. 依赖管理系统版本号规范 2. 多模块构建3. 一致的项目结构4. 一致的构建模型和插件机制 3. Maven 的安装配置和目录结构1. Maven 的安…

IDEA中创建maven项目详细步骤,很清晰

前言 在IDEA中创建Maven项目&#xff0c;前提是已经安装配置好Maven环境 。 如还未配置安装Maven的&#xff0c;请先下载安装。如何下载安装&#xff0c;可参考我另外篇文章&#xff1a; maven的下载与安装教程 本篇教程是以创建基于servlet的JavaWeb项目为例子&#xff0c;如…

深拷贝和浅拷贝

深拷贝和浅拷贝的知识涉及到堆栈的概念。 堆栈的概念&#xff1a; 基本类型&#xff1a; 名值存储在栈内存中&#xff0c;例如: let a 1;引用类型&#xff1a; 名存在栈内存中&#xff0c;值存在于堆内存中&#xff0c;但是栈内存会提供一个引用的地址指向堆内存中的值&…

深拷贝和浅拷贝的区别详解

深拷贝和浅拷贝的作用是复制对象数据&#xff0c;这两者都用于构造拷贝构造函数中&#xff0c;那么这俩之间到底有什么区别呢&#xff1f; 先上答案 - 浅拷贝&#xff1a;简单的赋值拷贝操作 - 深拷贝&#xff1a;在堆区重新申请内存空间&#xff0c;进行拷贝操作 下面举一个…

Python深拷贝与浅拷贝的区别

首先深拷贝和浅拷贝都是对象的拷贝&#xff0c;都会生成一个看起来相同的对象&#xff0c;他们本质的区别是拷贝出来的对象的地址是否和原对象一样&#xff0c;也就是地址的复制还是值的复制的区别。 什么是可变对象&#xff0c;什么是不可变对象&#xff1a; 可变对象是指&am…

详解JS深拷贝与浅拷贝

深拷贝与浅拷贝 深拷贝和浅拷贝都只针对引用数据类型&#xff0c;浅拷贝会对对象逐个成员依次拷贝&#xff0c;但只复制内存地址&#xff0c;而不复制对象本身&#xff0c;新旧对象成员还是共享同一内存&#xff1b;深拷贝会另外创建一个一模一样的对象&#xff0c;新对象跟原对…

c++深拷贝与浅拷贝

浅拷贝&#xff1a;简单的赋值拷贝操作&#xff08;这个是系统默认提供的&#xff09; 深拷贝&#xff1a;在堆区重新释放空间&#xff0c;进行拷贝操作&#xff08;要自己写的&#xff09; 简单来说&#xff0c;只要类属性里有指针等就必须利用深拷贝操作 为便于深刻理解&a…

实现深拷贝与浅拷贝的方法

深拷贝与浅拷贝概念&#xff1a; 深浅拷贝出现的前提&#xff1a; 应用类型的数据&#xff08;对象和数组&#xff09; 深拷贝就是把目标对象里面的数据一个一个都复制下来&#xff0c;创建出一个一模一样的&#xff0c;存放地址不一样&#xff0c;互不影响。就像真假美猴王。改…

深拷贝和浅拷贝的区别及实现方法

文章目录 一、引言二、浅拷贝1.Object.assign()2.concat()3.扩展运算符 三、深拷贝1. 利用json数据和json字符串之间的转换2.$.extend()3. 递归 查阅多篇文章后&#xff0c;自己归纳总结对深拷贝和浅拷贝的理解&#xff0c;不足之处&#xff0c;还望多多指导 一、引言 基本数据…

深拷贝与浅拷贝的区别

深拷贝与浅拷贝是针对对象属性为对象的&#xff0c;因为基本数据类型在进行赋值操作时&#xff08;也就是深拷贝&#xff08;值拷贝&#xff09;&#xff09;&#xff0c;是直接将值赋给了新的变量&#xff0c;也就是该变量是原变量的一个副本&#xff0c;这时&#xff0c;你修…

深拷贝和浅拷贝的区别是什么?

深拷贝和浅拷贝的区别是什么? 1、浅拷贝 (1)、定义 被复制对象的所有变量都含有与原来的对象相同的值&#xff0c;而所有的对其他对象的引用仍然指向原来的对象。即对象的浅拷贝会对“主"对象进行拷贝&#xff0c;但不会复制主对象里面的对象。"里面的对象”会在…

深拷贝和浅拷贝常见的实现方式

浅拷贝的实现方式 1. Object.assign()方法 assign()方法是把任意多个的源对象自身的可枚举属性拷贝给目标对象&#xff0c;然后返回目标对象。但是他的拷贝方式不是固定的&#xff0c;看下面的代码演示&#xff1a; let obj {username: kobe}; let obj2 Object.assign({},o…

什么是深拷贝和浅拷贝?以及怎么实现深拷贝和浅拷贝?

拷贝浅是创建一个新对象&#xff0c;这个对象有着原始对象属性值的一份精确拷贝。如果属性是基本类型&#xff0c;拷贝的就是基本类型的值&#xff0c;如果属性是引用类型&#xff0c;拷贝的就是内存地址&#xff0c;所以如果其中一个对象改变了这个地址&#xff0c;就会影响到…