在IDE中使用Maven
IDE工具
-
MyEclipse
集成maven插件
-
Eclipse
Eclipse For Java EE
-
IDEA
集成Maven插件
在IDE中
配置Maven
- 指定maven安裝目錄和配置文件
- 自動更新maven項目:勾選import projects automatically (2020版本 :Ctrl + Shift + O)
創建Maven項目
new Module——>Maven——>勾選Create from archetype
執行maven操作
Maven projects顯示所有maven項目
執行生命周期
如果不想單獨執行,就點擊maven框里的Execute Maven Goal(在run maven的右邊)
也能自定義添加一個maven操作組合
如果main文件下沒有resources文件就創建一個,test文件下也是一樣的
目錄的類型與更改類型
在IDEA中目錄是分類型的,常營的4中:
-
Sources Root 主代碼的目錄:src/main/java
-
Test Sources Root 測試代碼的目錄:src/test/java
-
Resources Root 主代碼所需資源的目錄:src/main/resources
-
Test Resources Root測試代碼所需資源的目錄:src/test/resources
注:在IDEA中默認創建的目錄都是普通的Directory,創建后需要設置目錄的類型
可以在文件右鍵 Mark Directory As中更改
Maven中pom.xml文件詳解
簡介
pom:project object model項目對象模型
pom.xml是Maven的核心配置文件
一個Maven項目有且只有一個pom.xml文件,該文件必須在項目的跟目錄下
坐標
什么是坐標
用來唯一的標識每個項目,必須為項目定義坐標,坐標必須唯一
目的是為了讓其他的Maven項目可以使用該項目生成的jar包
坐標詳解
Maven坐標是通過一些元素來定義:groupId(組織的ID)、artifactId、version
groupId(組織的ID):表示當前模塊所屬於的項目
artifactId:模塊的ID
version:當前的版本
<groupId>org.example</groupId>
<artifactId>maven-project</artifactId>
<version>1.0-SNAPSHOT</version>
dependency
基本配置
如何查找一個jar包的坐標
https://search.maven.org/或者:https://maven.aliyun.com/mvn/view(maven.aliyun.com/nexus)
查找mysql-connector
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- mysql jar包-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
</dependency>
</dependencies>
scope作用域
表示依賴的作用域,用來配置依賴的jar包可使用的范圍
取值 | 含義 | 舉例 |
---|---|---|
compile | 該依賴可以在整個項目中使用,參與打包部署,默認值 | commons-fileupload |
test | 該依賴只能在測試代碼中使用,並且不參與打包部署的 | junit |
provided | 該依賴編寫源代碼時需要,不參與打包部署 | servlet-api、jsp-api |
runtime | 該依賴編寫代碼時不需要,運行時需要,參與打包部署 | mysql-connector |
system | 表示使用本地系統路徑下的jar包,需要和一個systemPath一起使用 | ojdbc.jar |
使用本地jar包(放在自己創建的lib文件下,與src同級):
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.22</version>
<systemPath>${basedir}/lib/mysql-connector-java-8.0.17.jar</systemPath>
</dependency>
properties
全局屬性,一般情況下同於定義全局的jar包的版本
作用:比如在properties中定義版本<ljy.version>4.3.12</ljy.version>
那么在對於的依賴下添加
在properties中改了 后面對應的依賴版本也跟着改了(方便)
在依賴的version中alt+ctrl+v(快速提取)
如:
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
<mysql-connector-java.version>8.0.22</mysql-connector-java.version>
</properties>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql-connector-java.version}</version>
</dependency>
repositories
用來配置當前工程使用的遠程倉庫
依賴查找的順序:本地倉庫——>當前工程pom.xml中配置的遠程倉庫——>setting.xml中配置的遠程倉庫
spring為例:url 是spring官方地址
<repositories>
<!-- 有些最新的jar包,可能在中央倉庫上並沒有提供,此時可以使用jar包官方提供的倉庫-->
<repository>
<id>spring_repo</id>
<url>https://repo.spring.io/milestone/</url>
</repository>
plugin(配置插件)
配置插件,是一種工具
格式:
<build>
<plugins>
<plugin>
<groupId>xxxx</groupId>
<artifactId>zzzz</artifactId>
<version>zzzz</version>
</plugin>
</plugins>
</build>
<build>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<!-- clean lifecycle, see https://maven.apache.org/ref/current/maven-core/lifecycles.html#clean_Lifecycle -->
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
</plugins>
</pluginManagement>
</build>
超級POM
所有的pom.xml文件都繼承了父POM,這個父POM稱為超級POM(Super POM),你看不見也改不了,但是在myeclipse軟件中能看見