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、依赖管理
具体坐标书写格式可以到下面网址搜索:
使用坐标引入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注解的测试方法