基于 IDEA 创建 Maven 的 Java SE 工程和 Java Web 工程

一、概念简介

        Maven 工程相对之前的项目,多出一组 gavp 属性,gav 需要我们在创建项目的时候指定,p 有默认值,我们先行了解下这组属性的含义。

        Maven 中的 GAVP 是指 GroupIdArtifactIdVersionPackaging 等四个属性的缩写,其中前三个是必要的,而 Packaging 属性为可选项。这四个属性主要为每个项目在 maven 仓库中做一个标识,类似人的姓名!有了具体标识,方便后期项目之间相互引用依赖等!GAV 遵循以下规则:

1.1 GroupID

        格式:com.{公司/BU }.业务线.\[子业务线],最多 4 级。

        例如:com.taobao.tddlcom.alibaba.sourcing.multilang

1.2 ArtifactID

        格式:产品线名-模块名。语义不重复不遗漏,先到仓库中心去查证一下。

        例如:tc-client / uic-api / tair-tool / bookstore

1.3 Version

        格式:主版本号.次版本号.修订号。主版本号:当做了不兼容的 API 修改,或者增加了能改变产品方向的新功能。次版本号:当做了向下兼容的功能性新增(新增类、接口等)。修订号:修复 bug,没有修改方法签名的功能加强,保持 API 兼容性。

        例如: 初始→1.0.0  修改 bug 1.0.1  功能调整 → 1.1.1 

1.4 Packaging

        指示将项目打包为什么类型的文件,idea 根据 packaging 值,识别 maven 项目类型!

        packaging 属性为 jar(默认值),代表普通的 Java 工程,打包以后是 .jar 结尾的文件。

        packaging 属性为 war,代表 Java web 工程,打包以后 .war 结尾的文件。

        packaging 属性为 pom,代表不会打包,用来做继承的父工程。

二、创建 Java SE 工程

2.1 设置项目结构

        先设置项目结构,将 sdk 和语言版本设置为 jdk 8,如下图

2.2 创建 module

        我们点击项目右键 New,选择 Module

        输入模块名称和 GroupId,点击 create,如下图所示:

        此时我们的 module 就创建成功了,如下图:

2.3 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 的版本,不是 maven 的版本--><modelVersion>4.0.0</modelVersion><!--当前 maven 项目的坐标--><groupId>com.maven</groupId><artifactId>maven_java</artifactId><version>1.0-SNAPSHOT</version><!-- maven 工程的打包方式,可以是 jar、war 和 pom,默认为 jar--><packaging>jar</packaging><properties><!--设置当前编译的 jdk 版本--><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><!--构建项目时的编码设置--><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>

三、创建 Java Web 工程

3.1 手动创建

3.1.1 创建 module

        我们点击项目右键 New,选择 Module

        输入模块名称和 GroupId,点击 create,如下图所示:

        此时我们的 module 就创建成功了,如下图:

3.1.2 手动修改

        我们上面新建了一个 module,他现在属于 java se 工程,我们需要把他改成 java web 工程,其实这两种项目只是差了一个 web 模块,接下来我们把这个 web 模块添加进去。

        1、先来看下现在项目的目录结构,maven_web 是没有 web 模块的,如下图:

        2、修改 java_web 模块的 pom.xml ,将打包方式修改为 war,如下

<?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.maven</groupId><artifactId>maven_web</artifactId><version>1.0-SNAPSHOT</version><packaging>war</packaging><properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding></properties></project>

        3、再来看下现在项目的目录结构,maven_web 出现了 web 模块的,如下图: 

        此时我们就需要在里面配置 web.xml 的路径以及 web 资源的路径,如下图

        点击 apply ok 之后,可以发现,webapp 目录和 web.xml 文件就被创建成功了,如下图:

3.2 插件创建

3.2.1 安装插件

        首先打开 file -setting,选择 plugins,搜索我们要是有的 JBLJavaToWeb 插件,点击安装。

 3.2.2 创建 module

        我们点击项目右键 New,选择 Module

        输入模块名称和 GroupId,点击 create,如下图所示:

        此时我们的 module 就创建成功了,如下图:

3.2.3 自动修改 

        右键我们的模块,选择 JBLJavaToWeb,如下图

        可以发现,一下子就成功了,不用我们再手动创建了,但是需要注意的是,我们要看 webapp 目录上是否有一个小蓝点,如果没有就是没创建成功,就需要删了重新建。

3.3 部署到 tomcat

3.3.1 创建首页

        在 webapp 目录下创建一个 index.html 文件,项目结构和内容如下所示:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>首页</title>
</head>
<body><h1>index.html</h1>
</body>
</html>

3.3.2 添加配置

        1、点击修改配置,如下图

        2、选择 Tomcat

         3、点击 Deployment,并修改 Application context,如下图:

         4、然后再回到 server,配置剩下的两个选项

3.3.3 运行测试

        点击 apply ok 之后,点击 debug 的模型进行启动和访问,如下图:

        可以看到,运行成功了 

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SpringSecurity入门demo(一)集成与默认认证

一、集成与默认认证&#xff1a; 1、说明&#xff1a;在引入 Spring Security 项目之后&#xff0c;没有进行任何相关的配置或编码的情况下&#xff0c;Spring Security 有一个默认的运行状态&#xff0c;要求在经过 HTTP 基本认证后才能访问对应的 URL 资源&#xff0c;其默认…

Swin Transformer 学习笔记(附代码)

论文地址&#xff1a;https://arxiv.org/pdf/2103.14030.pdf 代码地址&#xff1a; GitHub - microsoft/Swin-Transformer: This is an official implementation for "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows". 1.是什么&#x…

Mariadb和mysql数据库的区别和相同之处

目 录 一、maridb 和mysql在linux系统中广泛应用 二、MySQL数据库 三、MariaDB数据库 四、MariaDB和MySQL有哪些相同点 五、MariaDB和MySQL的不同点 一、mariadb 和mysql在linux系统中广泛应用 用linux&#xff08;包括centos和Ubuntu&#xff09;的都知道&a…

打通商城与ERP系统,实现物料自动同步

【客户介绍】 某文化传播有限公司是一家专注于为企业提供品牌营销、公关传播、活动策划、数字营销等服务的综合性文化传播公司。该公司拥有一支经验丰富的专业团队&#xff0c;具有丰富的品牌营销、公关传播、活动策划、数字营销经验。该公司自成立以来&#xff0c;已经为数百…

【服务器】服务器管理 - cockpit开启

开启cockpit #!/bin/bashsed -i s/is():where()/is(*):where(*)/ /usr/share/cockpit/static/login.jssystemctl enable --now cockpit.socket #开启cockpit服务systemctl start cockpit.socket 登录 https://ip:9090

2. Presto应用

该笔记来源于网络&#xff0c;仅用于搜索学习&#xff0c;不保证所有内容正确。文章目录 1、Presto安装使用2、事件分析3、漏斗分析4、漏斗分析UDAF开发开发UDF插件开发UDAF插件 5、漏斗测试 1、Presto安装使用 参考官方文档&#xff1a;https://prestodb.io/docs/current/ P…

苍穹外卖学习----出错记录

1.微信开发者工具遇到的问题&#xff1a; 1.1appid消失报错&#xff1a; {errMsg: login:fail 系统错误,错误码:41002,appid missing [20240112 16:44:02][undefined]} 1.2解决方式&#xff1a; appid可在微信开发者官网 登录账号后在开发栏 找到 复制后按以下步骤粘贴即…

H264码流进行RTP包封装

一.H264基本概念 H.264从框架结构上分为视频编码层&#xff08;VCL&#xff09;和网络抽象层&#xff08;NAL&#xff09;&#xff0c;VCL功能是进行视频编解码&#xff0c;包括运动补偿预测&#xff0c;变换编码和熵编码等功能&#xff1b;NAL用于采用适当的格式对VCL视频数据…

Java常用类---Math类和Random类

Math类 简介 Java中&#xff0c;Math类包含了用于执行基本数学运算的属性和方法。Math类的方法都被定义为static形式(静态方法)&#xff0c;通过Math类可以直接在主函数中直接调用。 如下图所示&#xff0c;Math.PI等于圆周率π、Math.E等于常量e……等属性和方法。 部分Mat…

仿真验证方法(2)——静态验证

一、静态验证 1.1 概述 在之前的文章中&#xff0c;我们介绍了动态仿真&#xff0c;但是动态仿真用于百万门以上电路时所需时间极长&#xff0c;而且其功能覆盖率取决于所设计的输入激励向量&#xff0c;很难达到100%&#xff0c;因此静态时序分析和等效性检查这样的静态验证是…

SwiftUI之深入解析布局协议

一、什么是布局协议&#xff1f; 采用布局协议类型的任务&#xff0c;是告诉 SwiftUI 如何放置一组视图&#xff0c;需要多少空间。这类型常常被作为视图容器&#xff0c;虽然布局协议是 2022 年新推出的&#xff08;至少公开来说&#xff09;&#xff0c;但是我们在第一天使用…

1Panel应用推荐:AList开源文件列表工具

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…