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

一、概念简介

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

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

1.1 GroupID

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

        例如:com.taobao.tddl 或 com.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.tpcf.cn/news/616202.html

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

相关文章

刚买的助听器就弄丢了,不想白配,快来看看这8大助听器防丢小技巧

我们知道助听器可以让听损人士重新听到美妙的声音和享受沟通的乐趣。但是&#xff0c;助听器也是一种很贵的物品&#xff0c;如果不小心弄丢了&#xff0c;就会让人心痛不已。 更有甚者&#xff0c;有些人因为害怕丢失助听器&#xff0c;而不敢佩戴助听器&#xff0c;错过了听力…

解决Windows11 “我们无法设置移动热点”

目录 问题复现解决办法①启动网络适配器②打开移动热点③共享网络连接④连接移动热点总结 问题复现 因为交换机上网口限制&#xff0c;开发环境暂时没有WIFI设备&#xff0c;只有一根网线和一台笔记本电脑。于是开启笔记本电脑的WiFi共享服务。结果提示 “我们无法设置移动热点…

MySQL面试题(下)

09&#xff09;查询学过「张三」老师授课的同学的信息 SELECTs.*,c.cname,t.tnameFROMt_mysql_teacher t,t_mysql_student s,t_mysql_course c,t_mysql_score scWHEREt.tidc.tid and c.cidsc.cid and sc.sids.sid and tname 张三 10&#xff09;查询没有学全所有课程的同学的…

Unity实现 球形雾效散射光照

前言 首先,我们要解决的问题是,光源发出光线,打到雾中的粒子,粒子散射光线,散射的光线继续作为光源传播,继续打到其他粒子,再次散射,最终传入人的眼睛。 人眼单个点看到的颜色值,即为该光线方向所有粒子传到人眼的光线总和。 而这种方式的计算量几乎是无穷的,因此我…

7-35 有理数均值 分数 20

每日一言 我们把世界看错&#xff0c;反说它欺骗了我们。 --飞鸟集 题目 本题要求编写程序&#xff0c;计算N个有理数的平均值。 输入格式&#xff1a; 输入第一行给出正整数N&#xff08;≤100&#xff09;&#xff1b;第二行中按照a1/b1 a2/b2 …的格式给出N个分数形式的…

应急管理蓝皮书 |《应急预案数字化建设现状和发展建议》下篇

导读 《应急预案数字化建设现状和发展建议》&#xff1a;297-313页 《中国应急管理发展报告》系列蓝皮书由中央党校&#xff08;国家行政学院&#xff09;应急管理培训中心&#xff08;中欧应急管理学院&#xff09;联合社会科学文献出版社研创出版&#xff0c;本着“权威前沿…

asp.net core项目发布到 iis上

我们都知道与传统asp.net 项目比较&#xff0c;ASP.NET Core则完全不同&#xff0c;它并不是运行在IIS的工作进程中&#xff0c;而是独立运行的。它运行于控制台应用程序之中&#xff0c;控制台中则运行了Kestrel Web服务器组件。Kestrel作为一款.NET Web服务器的实现&#xff…

【计算机网络】--集线器,路由器,交换机对比

&#x1f3b5;1.集线器 &#x1f308;1.1集线器概念 集线器是一种网络设备&#xff0c;广泛应用于计算机局域网环境中。它通常具有多个以太网接口&#xff0c;用于将多个计算机或其他网络设备连接在一起&#xff0c;形成一个网络拓扑结构。 &#x1f308;2.集线器的作用 集线器…

动态规划中如何利用map进行降维

1 总结&#xff1a;在动态规划类题目中什么样的能利用map进行降维呢 1.1 具有两数之和特性&#xff0c;能用公式表示需要搜索的值和当前可获得的值之间的数量关系 1.2 具有等差、等比数列特性 2 例子 2.1 前缀和相关的题目 利用前缀和求解的lc题目汇总 2.2 LC1218. 最长定…

2024年CES展会都有些啥?亮点集锦都在这里

&#x1f4a1; 大家好&#xff0c;我是可夫小子&#xff0c;《小白玩转ChatGPT》专栏作者&#xff0c;关注AIGC、读书和自媒体。 CES在科技界是一场盛会&#xff0c;被誉为科技界的春晚&#xff0c;展会上前沿的技术、概念的产品吸引不少关注。2024年CES是在2023年大语言模型…

uniapp 实战 -- 创建 uni-admin 项目,部署到 uniCloud 前端网页托管(免费云空间)

创建 uni-admin 项目 可见 只能创建一个超级管理员&#xff0c;创建过后&#xff0c;登录页将不再显示 注册管理员账号 部署到 uniCloud 前端网页托管 部署成功&#xff0c;访问地址可预览效果&#xff01; https://static-mp-7b65169e-151f-4fbb-a5ba-2125d4f56e3f.next.bs…

暴雨信息|2024算力网络发展的四大趋势

数字经济时代&#xff0c;算力是全社会数字化、智能化转型的重要基石。2024年&#xff0c;以人工智能技术将进一步激发算力需求&#xff0c;算力网络、智算中心、超算中心将迎来怎样的发展机遇&#xff1f; 暴雨信息首席科学家李胜超在接受通信世界全媒体记者采访时表示&#…

mysql异步复制与半同步复制

mycat异步复制&#xff1a; Mycat是一个基于MySQL协议的开源数据库中间件&#xff0c;它提供了数据库分片、读写分离、异步复制等功能。要在Mycat中实现异步复制&#xff0c;您需要进行以下配置和操作&#xff1a; 1. 安装Mycat&#xff1a;首先&#xff0c;需要在您的服务器上…

俩万字详解C++STL期末复习知识点(C++STL课本源码私信可得)

邸老师复习建议 复习注意事项 1 不考死记硬背的题&#xff0c;比如名词解释。 2 选择题重点考核宏观性、综合性的问题&#xff0c;比如&#xff1a;把电话通讯录存入容器&#xff0c;该选哪一个容器&#xff1f; 3 选择题重点考核理解性的问题&#xff0c;比如&#xff0c;…

TCP/IP 网络模型

TCP/IP 网络通常是由上到下分成 4 层&#xff0c;分别是应用层&#xff0c;传输层&#xff0c;网络层和网络接口层。 应用层 应用层专注于为用户提供应用功能&#xff0c;比如 HTTP、FTP、Telnet、DNS、SMTP等。我们电脑或手机使用的应用软件都是在应用层实现。应用层是不用去关…

ubuntu 20.04部署brc20 ordinals铭文

1、btc节点部署文档详见btc节点部署 官方文档 2、更改之前节点部署rpc访问方式 下载bitcoin包后相对路径&#xff1a;bitcoin-26.0/share/rpcauth/rpcauth.py 文件 执行文件 ~# python3 rpcauth.py admin String to be appended to bitcoin.conf: rpcauthadmin:sdoieoifjeofg3…

mysql日期时间函数

当前时间 > SELECT CURDATE(),CURTIME(),NOW(); ->2024-01-10 | 10:47:18 | 2024-01-10 10:47:18 > select sysdate(); ->2024-01-10 10:47:18 NOW() 返回当前日期时间&#xff0c;返回格式要么是字符串"YYYY-MM-DD HH-MM-SS"格式&#xff0c;要么是…

波动,热传导,扩散方程建立

数学物理方程是从自然科学的各个领域和工程技术领域中导出的偏微分方程和积分方程.在这些以偏微分方程为基础的数学模型中&#xff0c;二阶线性偏微分方程中的三个典型方程与定解条件的建立、解法及其应用&#xff0e;描述振动和波动过程的波动方程、描述输运过程的热传导&…

【grpc】利用protobuf实现java或kotlin调用python脚本,含实现过程和全部代码

前言 在一些特殊场景中&#xff0c;我们可能需要使用java或者其他任意语言调用python脚本或sdk等。本文的需求衍生也不例外于此&#xff0c;python端有sdk&#xff0c;但只能在python中调用&#xff0c;于是就有了本文章。 常见的调用方式如jython、python提供http rest接口、…

照片模糊如何变清晰不妨试试这款软件吧

很多人希望能把模糊的图片或照片变得很清晰&#xff0c;或者把一个只有几十KB的小图变成有几M大小的高清大图。一般来说&#xff0c;一张模糊或打了马赛克的图片本身很多细节信息就没有或被删除了&#xff0c;就像一本书缺了很多页&#xff0c;我们是可能百分百的还原出它原来的…