JavaWeb学习打卡05(在IDEA中创建并使用MavenWeb项目详解、POM.XML文件)

创建MavenWeb项目

  1. 启动Idea
  2. 创建MavenWeb项目(以下为IDEA 19版演示),如图

等待项目初始化完成,随后点自动导入包:

Maven在Idea 中配置:

进入Settings:

注意:IDEA项目创建成功后,要看一眼Maven的配置,避免IDEA将Maven的配置改为它默认的
项目文件夹解析:

IDEA中标记文件夹功能的使用:

在IDEA中配置Tomcat:

解决警告问题

必须要的配置:为什么会有(上图)这个警告问题呢?是因为我们访问一个网站,需要指定一个文件夹名字(eg:webapps),必须手动进行配置;

启动Tomcat

解决IDEA 2024版中,没有web文件夹显示问题,创建Mavenweb项目:

创建好之后,我们发现项目中没有出现 webapps文件夹,我们接下来进行手动配置web框架:


Maven侧边栏的使用:

POM文件

pom.xml 是Maven的核心配置文件

XML 复制代码
	<!-- package :项目的打包方式
		jar:java应用
		war:javaweb应用
		-->
	<!--配置 -->
    <properties>
		<!--编码版本 -->
        <maven.compiler.source>22</maven.compiler.source>
        <maven.compiler.target>22</maven.compiler.target>
		<!--项目的默认构造编码 -->
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <!--添加内容: 添加依赖java包-->
    <!--Maven的高级之处在于,它会帮你导入这个JAR包所依赖的其他的jar包-->
    <dependencies>
        <!-- https://mvnrepository.com/artifact/com.alibaba/druid -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>1.1.21</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/org.projectlombok/lombok -->
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.30</version>
        </dependency>
        <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
        <dependency>
            <groupId>mysql</groupId>
            <artifactId>mysql-connector-java</artifactId>
            <version>8.0.28</version>
<!--            <version>5.1.40</version>-->
        </dependency>
        <!-- https://mvnrepository.com/artifact/javax.servlet/javax.servlet-api -->
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>javax.servlet-api</artifactId>
            <version>4.0.1</version>
            <scope>provided</scope>
        </dependency>
        <!-- https://mvnrepository.com/artifact/junit/junit -->
        <dependency>
            <groupId>org.junit.jupiter</groupId>
            <artifactId>junit-jupiter-engine</artifactId>
            <version>5.7.2</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

maven由于它的约定大于配置,我们之后可能遇到我们写的配置文件,无法被导出或者生效问题,解决方案(在pom.xml文件中):

XML 复制代码
    <!--在build中配置resources,来防止我们的资源导出失败的问题 -->
    <build>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>src/main/java</directory>
                <includes>
                    <include>**/*.properties</include>
                    <include>**/*.xml</include>
                </includes>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>
相关推荐
一隅论数智4 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
XiHongShi20164 天前
STM32F407 RTC定时器例程,建议保存
stm32·单片机·学习
爱吃苹果的日记本4 天前
离散数学第六课
学习·离散数学
AI职业加油站4 天前
AI智能体应用工程师证书:政策红利下的职业新风口
大数据·运维·人工智能·学习·职场发展
旖旎夜光4 天前
力控面试题 01.01: 判定字符是否唯一(位运算) —— 题解
c++·学习·算法·leetcode·力控
奇思妙想聪明勤奋的小羊4 天前
DeepAgents第5章:子Agent 与上下文隔离—让 Agent学会委派
人工智能·python·学习·语言模型
霍霍的袁4 天前
【C++】map 和 set 的使用 | 从用法到底层
开发语言·c++·学习·visual studio
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
我爱cope4 天前
【操作系统 | 计算机硬件:CPU、内存与 I/O 如何支撑操作系统?】
学习·操作系统