百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术教程 > 正文

Maven快速入门(二)手动创建maven项目hellomaven

csdh11 2025-03-30 15:42 5 浏览

之前讲过Maven介绍及环境搭建,介绍了maven的作用和如何搭建maven环境。接下来就以一个helloworld的例子来说一说如何创建maven项目以及maven项目的项目结构,最后讲maven如何编译运行项目。

创建Maven项目

其实所谓创建Maven项目,说白了就是创建一个符合Maven约定的项目骨架,也就是项目目录。这些项目的目录可以手动创建,也可以用maven插件。这里我就介绍使用archetype插件自动建立目录

首先,创建项目存放的目录(例如d:\maven_project),然后打开终端或者命令行并切换到d:\maven_project目录下,执行以下Maven命令:

mvn archetype:generate -DgroupId=com.weiz.hellomaven -DartifactId=hello-maven-test -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false

参数说明

artifactId: 创建的项目名称

groupId : 标识package命名空间


命令输出情况:

Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 -Dgroovy.source.encoding=UTF-8
[INFO] Scanning for projects...
.
.省略输出
.
[INFO] Parameter: basedir, Value: D:\maven_project
[INFO] Parameter: package, Value: com.weiz.hellomaven
[INFO] Parameter: groupId, Value: com.weiz.hellomaven
[INFO] Parameter: artifactId, Value: hello-maven-test
[INFO] Parameter: packageName, Value: com.weiz.hellomaven
[INFO] Parameter: version, Value: 1.0-SNAPSHOT
[INFO] project created from Old (1.x) Archetype in dir: D:\maven_project\hello-m
aven-test
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.039 s
[INFO] Finished at: 2020-05-23T16:40:59+08:00
[INFO] ------------------------------------------------------------------------

注意:如果是刚安装的Maven,第一次创建项目时可能需要一段时间,因为Maven需要从网上下载大部分最近的artifacts (plugin jars and other files)到你的本地仓库。如果失败了,再执行一次该命令即可。

输出了“BUILD SUCCESS”时表示项目创建成功了,创建一个hello-maven-test的项目。

Maven项目结构

1、项目结构

maven工程与以往的java工程目录结构有所不同,以往的java工程目录目录一般只有一个src用于存放包及java文件,而maven工程目录长这样: 

$ MavenProject
|-- pom.xml
|-- src
|   |-- main
|   |   `-- java
|   |   `-- resources
|   `-- test
|   |   `-- java
|   |   `-- resources

一般将java的功能代码,放在main/java下面,而测试代码放在test/java下,这样在运行时,maven才可以识别目录并进行编译。

  • src/main/java - 存放项目.java文件;
  • src/main/resources - 存放项目资源文件;
  • src/test/java - 存放测试类.java文件;
  • src/test/resources - 存放测试资源文件;
  • target - 项目输出目录;
  • pom.xml - Maven核心文件(Project Object Model)

2、pom文件

POM文件代表工程对象模型(Project Object Model)它是使用Maven工作的基本组件,位于工程根目录。POM文件支持继承。


  4.0.0
  com.weiz.hellomaven
  hello-maven-test
  jar
  1.0-SNAPSHOT
  hello-maven-test
  http://maven.apache.org
  
    
      junit
      junit
      3.8.1
      test
    
  

3、maven 坐标

maven 的所有构件均通过坐标进行组织和管理。maven 的坐标通过 5 个元素进行定义,其中 groupId、artifactId、version 是必须的,packaging 是可选的(默认为jar),classifier 是不能直接定义的。

节点描述groupId这是工程组的标示,它在一个组织或项目中通常是唯一的,例如,上述项目中com.weiz.hellomaven拥有所有当前组织的项目。artifactId当前工程标识。

通常是工程的名称,如上述中的hello-maven-test。groupId和artifactId一起定位了当前项目的仓库中的位置信息version工程版本号。如:
com.weiz.hellomaven:hello-maven-test:1.0-SNAPSHOT

编译、运行

上面讲了项目的目录结构,已经如何创建项目,那么怎么项目怎么编译、运行呢?

1、编译

打开控制台,进入到新创建的工程的目录下,执行命令:mvn compile

[INFO] Scanning for projects...
[INFO]
[INFO] ----------------< com.weiz.hellomaven:hello-maven-test >----------------
[INFO] Building hello-maven-test 1.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------.
.省略输出
.
[INFO] Nothing to compile - all classes are up to date
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  1.923 s
[INFO] Finished at: 2020-05-23T17:41:56+08:00
[INFO] ------------------------------------------------------------------------

输出了“BUILD SUCCESS”时表示项目编译成功。项目编译成功后会在项目下生成一个target文件夹,里面存放编译后的文件。

2、运行测试类

编译成功后执行mvn test命令,运行测试类:mvn test

[INFO] Scanning for projects...
.
省略输出
.
.
-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.weiz.hellomaven.AppTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.012 sec
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8 -Dgroovy.source.encoding=UTF-8
Results :
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  3.131 s
[INFO] Finished at: 2020-05-23T17:53:57+08:00
[INFO] ------------------------------------------------------------------------

输出信息里会显示单元测试的成功,失败数。

Maven常用命令

来看一下maven几个常用的构建命令,格式为mvn xxx。

除了以上命令之外,还有之前介绍的查看maven版本的命令:mvn -v 。

最后

以上,用hellomaven为例,首先介绍了如何创建maven项目、然后maven项目的结构,最后将如何编译运行maven项目。是不是特别简单。虽然简单,但这是所有开发者必学必会的基础技能。请大家关注(章为忠学架构)!

推荐阅读:

Maven快速入门(一)Maven介绍及环境搭建

搜索引擎(七)高可用的solr搜索引擎服务架构

Spring Boot入门系列(九)如何实现异步执行任务

Spring Boot入门系列(十三)如何实现事务,极简版!

Nginx总结(六)实现负载均衡

Redis总结(八)如何搭建高可用的Redis集群

相关推荐

SpringBoot中Tomcat和SpringMVC整合源码分析

原文地址:https://www.cnblogs.com/yuanbeier/p/16515791.html侵权联系删除...

SpringMVC访问静态资源(springboot访问静态资源)

有些时候我们在使用SpringMVC的时候造成无法访问静态资源文件(如:html,js,css,image等等)。其主要的原因出在web.xml文件我们设置SpringMVC前端控制器的映射路径...

带你深入理解javaweb之Servlet详解

Servlet详解...

JavaEE概述总结:Servlet生命周期+JSP内置对象

前言Servlet生命周期...

JavaWeb 过滤器 Filter 学习(java web过滤器作用是啥)

01什么是过滤器FilterServletAPI中提供了一个Filter接口,开发web应用时,如果编写的Java类实现了这个接口,则把这个java类称之为过滤器Filter。通过Filter技术...

一文弄懂Jasper引擎编译JSP文件的分析说明

...

全网最全Spring面试题之高级篇整理总结(共25题,附超详细解答)

1、什么是Spring框架?Spring框架有哪些主要模块?Spring框架是一个为Java应用程序的开发提供了综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发...

从 0 到 1:如何使用 eBPF 实现高效的内核安全监控?

eBPF(ExtendedBerkeleyPacketFilter)不仅能用于网络监控,还可以用于内核安全监控。本篇文章将介绍如何使用eBPF捕获系统调用,检测异常行为,并记录潜在的安全威胁...

2023最新ELK日志平台(elasticsearch+logstash+kibana)搭建

前言去年公司由于不断发展,内部自研系统越来越多,所以后来搭建了一个日志收集平台,并将日志收集功能以二方包形式引入自研系统,避免每个自研系统都要建立一套自己的日志模块,节约了开发时间,管理起来也更加容易...

Spring Boot 分布式系统中的日志打印设计:实战指南

在分布式系统中,日志是排查问题、监控系统状态和进行事后分析的“生命线”。然而,随着微服务架构的普及,日志的管理和检索变得愈发复杂。尤其是在生产环境中,当问题发生时,如何快速定位相关日志成为了一个关键挑...

ELK 教程 - 发现、分析和可视化你的数据

【注】本文译自:ELKStackTutorial-GettingStartedWithELKStack|Edureka...

Spring Cloud + ELK 统一日志系统搭建

ELK统一日志系统搭建...

ELK架构部署以及应用(elk集群架构)

一、ELK介绍ELK代表的是Elasticsearch,Logstash,KibanaElasticsearch:日志存储、搜索分析功能...

ELK踩坑记(elk siem)

#ELK#ElasticSearch#Kibana...

ELK超详细配置(elk7.12)

...