[Java Web]Maven:一个管理和构建Java项目的工具(二)

简介: [Java Web]Maven:一个管理和构建Java项目的工具(二)

7.4、导入Maven项目

选择右侧Maven面板,点击"+":

双击对应项目的pom. xml文件即可完成导入

7.5、Helper插件

8、🔺🔺PowerShell使用Maven

Maven常用命令:

       compile:编译

       clean:清理

       test:测试

       package:打包

       install:安装

默认生命周期:

Maven项目结构如下:

进入pom.xml的目录,打开终端:

或者

       

8.1、compile

编译完成后会多一个target文件,放置编译后的字节码文件:

8.2、clean

清除target文件

8.3、package

根据Mavne的默认生命周期,执行打包操作的时候会先执行测试操作,所以在打包操作显示的内容中会有显示测试代码展现的结果:

打包前:

打包后:

最关键的是:把当前项目打包成一个jar包放在了target目录下

8.4、test

8.5、install

该命令会将当前项目打包成jar包并且安装到本地Maven仓库:

Maven仓库:从上面的信息可以看出,输出到仓库的路径为->

D:\JAVA\Maven\apache-maven-3.6.1\LOCAL_WAREHOUSE\org\example\Maven\1.0SNAPSHOT\

9、依赖管理

具体坐标书写格式可以到下面网址搜索:

https://mvnrepository.com/

使用坐标引入jar包的步骤:

       在项目的pom.xml中编写标签

       在标签中使用 引入坐标

       定义坐标的 groupId,artifactId,version

               (dependencies依赖关系,dependency依赖)

点击刷新按钮,使坐标生效:

9.1、快捷方式

每次需要引入jar包,都去对应的网站进行搜索是比较麻烦的,接下来介绍一种快捷引入坐标的方式

在 pom.xml 中 按 alt + insert,选择 Dependency

在弹出的面板中搜索对应坐标,然后双击选中对应坐标

点击刷新按钮,使坐标生效

9.2、自动导入

上面每次操作都需要点击刷新按钮,让引入的坐标生效。

我们也可以通过设置让其自动完成:

选择 IDEA中 File->Settings->Build,Execution,Deployment->Build Tools:

选择 Any changes,点击 ok 即可生效

9.3、🔺🔺依赖范围

通过设置坐标的依赖范围(scope),可以设置对应jar包的作用范围:编译环境、测试环境、运行环境。

如下图所示给 junit 依赖通过 scope 标签指定依赖的作用范围。

那么这个依赖就只能作用在测试环境,其他环境下不能使用。

scope取值:

依赖范围

编译classpath

测试classpath

运行classpath

例子

compile

Y

Y

Y

logback

test

Y

Junit

provided

Y

Y

servlet-api

runtime

Y

Y

jdbc驱动

system

Y

Y

存储在本地的jar包

依赖取值说明:

compile :作用于编译环境、测试环境、运行环境。

test : 作用于测试环境。典型的就是Junit坐标,以后使用Junit时,都会将scope指定为该值

provided :作用于编译环境、测试环境。后面会使用servlet-api,在使用它时,必须将 scope 设置为该值,不然运行时就会报错

runtime : 作用于测试环境、运行环境。jdbc驱动一般将 scope 设置为该值,不设置也没有问题

注意:

如果引入坐标不指定 scope 标签时,默认就是 compile 值。

以后大部分jar包都是使用默认值。

10、Maven常见问题

10.1、问题引入

使用Maven的时候,有可能会出现执行test显示成功但是并没有执行测试类的情况!

10.2、解决方法

方式一:test测试类名必须是Test,或以Test开头,或以Test结尾!

方法二:实在不行,可以修改插件。

mvn test默认使用的是surefire插件,它按照指定格式的类名查找匹配的测试类

默认包含的测试类:

       */Test.java

       */TestCase.java

默认排除的测试类:

       */AbstractTest.java

       */AbstractTestCase.java

对pom.xml文件添加如下内容即可:

1. <build>
2. <plugins>
3. <plugin>
4. <groupId>org.apache.maven.plugins</groupId>
5. <artifactId>maven-surefire-plugin</artifactId>
6. <version>2.12.4</version>
7. <configuration>
8. <includes>
9. <!--<include>*\*\*\*Test.java</include>-->
10. <include>**\*</include>
11. </includes>
12. </configuration>
13. </plugin>
14. </plugins>
15. </build>

代码配置的是Test目录中任意目录下的任意文件都看成测试类,在执行mvn test命令时都会默认检测所有文件,并执行带有@Test注解的测试方法

相关文章
|
14天前
|
Web App开发 IDE 测试技术
Selenium:强大的 Web 自动化测试工具
Selenium 是一款强大的 Web 自动化测试工具,包括 Selenium IDE、WebDriver 和 Grid 三大组件,支持多种编程语言和跨平台操作。它能有效提高测试效率,解决跨浏览器兼容性问题,进行性能测试和数据驱动测试,尽管存在学习曲线较陡、不稳定等缺点,但其优势明显,是自动化测试领域的首选工具。
97 17
Selenium:强大的 Web 自动化测试工具
|
22天前
|
Java 开发者 微服务
Spring Boot 入门:简化 Java Web 开发的强大工具
Spring Boot 是一个开源的 Java 基础框架,用于创建独立、生产级别的基于Spring框架的应用程序。它旨在简化Spring应用的初始搭建以及开发过程。
40 6
Spring Boot 入门:简化 Java Web 开发的强大工具
|
24天前
|
缓存 JSON 监控
如何在项目中保证 Web 组件化的性能
保证 Web 组件化的性能需要从多个方面入手,综合运用各种优化方法和策略。通过持续的优化和改进,能够提高组件化的整体性能,为用户提供更好的体验,同时也有助于提高项目的开发效率和质量。
35 8
|
24天前
|
存储 前端开发 JavaScript
如何在项目中高效地进行 Web 组件化开发
高效地进行 Web 组件化开发需要从多个方面入手,通过明确目标、合理规划、规范开发、加强测试等一系列措施,实现组件的高效管理和利用,从而提高项目的整体开发效率和质量,为用户提供更好的体验。
27 7
|
1月前
|
中间件 Go API
Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架
本文概述了Go语言中几种流行的Web框架,如Beego、Gin和Echo,分析了它们的特点、性能及适用场景,并讨论了如何根据项目需求、性能要求、团队经验和社区支持等因素选择最合适的框架。
76 1
|
8天前
|
安全 Java API
java如何请求接口然后终止某个线程
通过本文的介绍,您应该能够理解如何在Java中请求接口并根据返回结果终止某个线程。合理使用标志位或 `interrupt`方法可以确保线程的安全终止,而处理好网络请求中的各种异常情况,可以提高程序的稳定性和可靠性。
38 6
|
23天前
|
设计模式 Java 开发者
Java多线程编程的陷阱与解决方案####
本文深入探讨了Java多线程编程中常见的问题及其解决策略。通过分析竞态条件、死锁、活锁等典型场景,并结合代码示例和实用技巧,帮助开发者有效避免这些陷阱,提升并发程序的稳定性和性能。 ####
|
21天前
|
存储 监控 小程序
Java中的线程池优化实践####
本文深入探讨了Java中线程池的工作原理,分析了常见的线程池类型及其适用场景,并通过实际案例展示了如何根据应用需求进行线程池的优化配置。文章首先介绍了线程池的基本概念和核心参数,随后详细阐述了几种常见的线程池实现(如FixedThreadPool、CachedThreadPool、ScheduledThreadPool等)的特点及使用场景。接着,通过一个电商系统订单处理的实际案例,分析了线程池参数设置不当导致的性能问题,并提出了相应的优化策略。最终,总结了线程池优化的最佳实践,旨在帮助开发者更好地利用Java线程池提升应用性能和稳定性。 ####
|
23天前
|
缓存 Java 开发者
Java多线程编程的陷阱与最佳实践####
本文深入探讨了Java多线程编程中常见的陷阱,如竞态条件、死锁和内存一致性错误,并提供了实用的避免策略。通过分析典型错误案例,本文旨在帮助开发者更好地理解和掌握多线程环境下的编程技巧,从而提升并发程序的稳定性和性能。 ####
|
17天前
|
安全 算法 Java
Java多线程编程中的陷阱与最佳实践####
本文探讨了Java多线程编程中常见的陷阱,并介绍了如何通过最佳实践来避免这些问题。我们将从基础概念入手,逐步深入到具体的代码示例,帮助开发者更好地理解和应用多线程技术。无论是初学者还是有经验的开发者,都能从中获得有价值的见解和建议。 ####