Maven学习(三):纯手撸一个Maven项目

news2024/11/16 10:50:44

纯手撸一个Maven项目

  • 一、创建Maven工程目录
  • 二、Maven项目构建命令
  • 三、插件创建工程
    • 1、创建java工程
    • 2、创建web工程
    • 3、对比java工程和web工程区别

一、创建Maven工程目录

  1. 按照下图所示的结构创建项目所需文件夹:
    在这里插入图片描述
  2. 在Demo.java文件内输入以下代码:
package com.nsu;

public class Demo{
	public String say(String name){
		System.out.println("hello "+ name);
		return "hello "+name;
	}
}
  1. 在test的com.nsu路径下写测试代码DemoTest.java:
    在这里插入图片描述
  2. DemoTest.java代码如下:
package com.nsu;

import org.junit.Test;
import org.junit.Assert;

public class DemoTest{
	@Test
	public void testSay(){
		Demo d = new Demo();
		String ret = d.say("maven");
		Assert.assertEquals("hello maven",ret); // Assert.assertEquals(目标值,实际值);
	}
}
  1. 在与src同级目录下新增pom.xml文件:
    在这里插入图片描述
  2. 输入以下内容:
<?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/maven-v4_0_0.xsd">
	<!--Maven的pom版本号,与咱安装的Maven3.6.3没关系-->
    <modelVersion>4.0.0</modelVersion>
	
	<!--定义当前Maven项目隶属组织名称-->
    <groupId>edu.nsu</groupId>
    <!--定义当前Maven项目名称-->
    <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. 打开命令行进入到当前项目pom.xml 所在的目录下;windows直接在路径地方输入cmd即可直接打开;
    在这里插入图片描述
  2. 输入命令mvn compile进行编译,此时会将我们项目所需的jar包全部下载到我们的本地仓库,此处截图内容较少的原因是我仓库很多jar包已存在:

在这里插入图片描述
3. 此时我们的项目目录下会多一个target,就是我们的编译文件。
在这里插入图片描述
4. 若我们编译的东西不想要了,就可以执行mvn clean命令,执行后项目下对应的target目录也会对应消失;
5. mvn test命令运行我们刚刚写的测试程序,并给出返回结果;
在这里插入图片描述
6. 当我们执行完毕后在项目目录下会形成详细的测试报告;
在这里插入图片描述
7. mvn package打包命令,执行完后我们的target会出现我们当前项目对应的jar包,其中包含我们项目的源程序;
在这里插入图片描述
8. mvn install将我们的jar包安装到我们的本地仓库;
在这里插入图片描述

三、插件创建工程

我们前面说的是,如何手工的一步一步创建工程,旨在让大家更好的理解其底层文件结构。Maven也提供了快速创建工程的插件供大家使用;

1、创建java工程

  1. 在命令行打开一个非Maven工程结构的文件夹,输入下面内容:
mvn archetype:generate -DgroupId=edu.nsu -DartifactId=java-project -DarchetypeArtifactId=maven-archetype-quickstart -Dversion=0.0.1-snapshot -DinteractiveMode=false
  1. 执行完毕后就会在我们的目录下生成对应的项目文件:
    在这里插入图片描述

2、创建web工程

  1. 同样打开一个非Maven项目结构的文件执行下边的命令;
mvn archetype:generate -DgroupId=edu.nsu -DartifactId=web-project -DarchetypeArtifactId=maven-archetype-webapp -Dversion=0.0.1-snapshot -DinteractiveMode=false
  1. 执行结束后即可生成web工程的项目结构:
    在这里插入图片描述

3、对比java工程和web工程区别

在这里插入图片描述

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

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

相关文章

数据库被勒索删除,解决方法

突然数据库被黑了&#xff0c;有一条勒索信息: To recover your lost Database send 0.018 Bitcoin (BTC) to our Bitcoin address: bc1qe4yefrptv2k8shawu3h84j0n8kyvxfk4wwate5 After this, contact us by email with your Server IP or Domain Name and a Proof of Payment …

JavaScript中的严格模式

一.什么是严格模式 在ECMAScript5标准中&#xff0c;JavaScript提出了严格模式的概念&#xff1a; 严格模式是一种具有限制性的JavaScript模式&#xff0c;从而使代码隐式脱离了“懒散(sloppy)模式”&#xff1b;支持严格模式的浏览器在检测到代码中有严格模式时&#xff0c;…

卡方检验的基本原理详解

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、卡方检验基本原理1. 1 χ2统计量计算公式1.2 理论频数如何计算&#xff1f;1.3 χ2值的结果如何理解&#xff1f;1.4 χ2检验的自由度如何理解&#xff1f;1.5 χ…

Arduino开发串口控制ESP8266 RGB LED

根据板卡原理RGB三色LED对应引脚&#xff1a;int LEDR12、int LEDG14、int LEDB13;设置串口波特率为115200Serial.begin(115200);源代码如下所示&#xff1a;/*名称&#xff1a;串口控制RGB亮灭实验功能&#xff1a;通过串口输入R、G、B三个字母来点亮对应的LED灯&#xff0c;关…

Java集合进阶——Map

一、Java Map集合详解 Map集合概述和特点 概述&#xff1a; 将键映射到值的对象 一个映射不能包含重复的键 每个键最多只能映射到一个值 Map接口和Collection接口的不同 Map是双列的,Collection是单列的 Map的键唯一,Collection的子体系Set是唯一的 Map集合的数据结构针对键有…

放假第三天

假期 # 生活 # 水文 咱们继续假期第三天的日常更文&#xff0c;没看上篇的铁子们我把地址贴在下面。 点我 虽然是假期&#xff0c;但我规划已久的睡懒觉流程却是一直执行不下去。这不今天早上八点我就起床了&#xff0c;当然起的早不是为了“卷”&#xff0c;而是吃早餐。说出…

Python操作 JWT(python-jose包)、哈希(passlib包)、用户验证完整流程

一、JWT简介 JWT是什么&#xff1f; JWT 即JSON 网络令牌&#xff08;JSON Web Tokens&#xff09;。 JWT(JSON Web Token) 是一种用于在身份提供者和服务提供者之间传递身份验证和授权数据的开放标准。JWT是一个JSON对象&#xff0c;其中包含了被签名的声明。这些声明可以是…

电脑开机出现绿屏错误无法启动怎么办?

电脑开机出现绿屏错误无法启动怎么办&#xff1f;有用户电脑开机的时候&#xff0c;突然出现了屏幕变成绿色的情况&#xff0c;而且上面有很多的错误代码。然后卡在页面上一直无法进入到桌面&#xff0c;重启电脑后依然无效。那么如何去解决这个问题呢&#xff1f;来看看具体的…

Java---Spring---SpringCache

SpringCache入门学习SpringCache介绍SpringCatch常用注解SpringCatch使用1.导入maven坐标2.配置application.yml3.在启动类上加入EnableCaching注解&#xff0c;开启缓存注解功能4.在controller的方法上加入Cacheable,CacheEvict等注解&#xff0c;进行缓存操作缓存穿透定义解决…

【Nginx】入门看这一篇就够啦,nginx 简介、安装、工作原理、工作方式、详解配置文件

目录 1、nginx 简介 2、nginx的工作原理 3、nginx 工作方式 4、nginx 安装 命令行安装 卸载命令 从源码构建 查看版本 测试启动 5、详解nginx配置文件 第一部分&#xff1a;全局块 第二部分&#xff1a;events块 第三部分&#xff1a;http 6、hosts 文件简介 1、…

解析Activity启动-窗口篇

解析Activity启动-窗口篇 在 解析Activity启动 前两篇文章中&#xff0c;我们分别专注于 堆栈 和 生命周期角度大致的过了一遍启动流程&#xff0c;而本篇会着重窗口的创建和显示流程&#xff0c;继续梳理Activity的启动流程 顺着前两篇文章的分析流程&#xff0c;我们知道和 …

DBCO高分子PEG_DBCO-PEG-Lipoic COOH_二苯并环辛炔-聚乙二醇-硫辛酸

DBCO-PEG-Lipoic acid“点击化学"一般由叠氮化物&#xff08;azide&#xff09;和炔烃&#xff08;alkyne&#xff09;作用形共价键&#xff0c;具有高效稳定&#xff0c;高特异性等优点。反应不受PH影响&#xff0c;能在常温条件下的水中进行,甚至能在活细胞中进行。DBCO…

第十三届蓝桥杯省赛 JAVA A组 - 矩形拼接

✍个人博客&#xff1a;https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 &#x1f4da;专栏地址&#xff1a;蓝桥杯题解集合 &#x1f4dd;原题地址&#xff1a;付账问题 &#x1f4e3;专栏定位&#xff1a;为想参加蓝桥别的小伙伴整理常考算法题解&#xff0c;祝大家…

Python学习中的六个技巧小结

1. 引言 “Beautiful is better than ugly.” 上述为著名的The Zen of Python的第一句话&#xff0c;也是有追求的python开发人员的信条之一。 所以我们的问题来了&#xff1a; 如何编写漂亮的Python代码? 本文重点通过九个示例向大家展示Python中的六个小技巧&#xff0c;以帮…

java后端-servlet超详细入门

java后端介绍今天我正式开始了一个新话题&#xff0c;那就是 Web。目前我主要会介绍后端。作为后端的老大哥 java&#xff0c;也有很多后端框架&#xff0c;比如大家耳熟能详的 spring 等。今天来带大家入门 servlet&#xff0c;不管是学生&#xff0c;刚毕业或是已经工作自学编…

【倍增】魔力小球

今天最后一篇&#xff0c;该睡了&#xff0c;怕猝死QwQ学校OJ上的一道模板题&#xff0c;去年不会做&#xff0c;今年还是不会做嘻嘻&#xff0c;还好最后调出来了&#xff0c;错的原因竟然是题目有歧义这个小球i的i是他喵的小球编号&#xff0c;不是id&#xff01;出题人是懂出…

Win11的两个实用技巧系列之电脑system占用高的解决办法

Win11 system占用cpu过高是什么原因? Win11电脑system占用高的解决办法Win11 system占用cpu过高是什么原因&#xff1f;Win11系统遇到system占用cpu很高&#xff0c;该怎么解决呢&#xff1f;下面我们就来看看Win11电脑system占用高的解决办法System占用cpu过高导致电脑卡顿&a…

2023年中职网络安全技能竞赛网页渗透(注入版)

竞赛任务书内容 (一)拓扑图 网页渗透 任务环境说明: 服务器场景:Server2121 服务器场景操作系统:未知(封闭靶机) 用户名:未知 密码:未知 1.访问服务器网站目录1,根据页面信息完成条件,将获取到的flag提交; 2.访问服务器网站目录2,根据页面信息完成条件,将获…

学生写字台灯用什么牌子的好?高品质学生台灯品牌推荐

学生写字台灯&#xff0c;很明显就是为学生而设计的&#xff0c;针对学生长时间学习&#xff0c;用眼强度大的特点&#xff0c;这种学生台灯在设计上对灯光的亮度、样式、护眼技术都是很有讲究的&#xff0c;为的就是保护学生眼睛&#xff0c;在一定程度上缓解眼部疲劳的作用。…

进程概念理解

既然要了解计算机的进程&#xff0c;那么就需要先了解一下计算机的底层结构 目录 冯洛伊曼体系结构 操作系统 系统调用接口 进程 PCB task_struct 内容 操作系统如何组织进程 冯洛伊曼体系结构 想了解计算机的底层结构&#xff0c;那么必定绕不开冯洛伊曼体系结构&…