您好,登錄后才能下訂單哦!
一般項目開發中,我們開發的代碼需要依賴一些額外的庫。而解決這些依賴,我們都需要手動從網上下載相應的jar包,然后添加到項目中的 lib 目錄下作為第三方庫存在。而當依賴很多的時候,這種方式是非常低效的。
maven核心功能就是合理敘述項目間的依賴關系。通俗的說就是通過在pomxml文件指定依賴的項目,然后maven會自動下載對應的依賴,然后添加到項目中,無需手動解決。
? maven倉庫分為本地倉庫、第三方倉庫(內部私有倉庫)、中央倉庫(網上共用倉庫)。
? 項目本身會先在本地倉庫查找依賴,如果找不到就會到中央倉庫下載到本地,然后使用。
使用maven創建java項目時,目錄結構會有所不同,目錄結構如下:
project_name
--pom.xml 該項目的依賴配置文件
--src
--main
--java java源碼目錄
--resources 資源目錄,包括圖片,配置文件等
--test
--java 測試java源碼目錄
--resources 測試資源目錄
--target 編譯文件輸出目錄
前面已經說到pom.xml用于配置項目的依賴。那么里面是如果描述依賴的呢,比如如何唯一確定依賴(也可以說是坐標)等。
如何獲取坐標
一個依賴的坐標有3個基本必須的關鍵字(還有不少其他關鍵字),分別是groupId、artifactId、version。配置一個依賴的基本格式如下:
<dependencies> 所有依賴都包含在這里面
<dependency>
<groupId>xxx</groupId> 一般為包名
<artifactId>xxx</artifactId> 一般為項目名
<version>xxx</version> 所需要的jar的版本,因為一個項目可能有多個版本
</dependency>
</dependencies>
一般來說,到中央倉庫中找相應的表以及項目,就可以找到完整的坐標。
更為詳細的講解,請見:https://www.cnblogs.com/whgk/p/7112560.html
maven的配置文件主要是 conf/settings.xml,配置內容如下:
<?xml version="1.0" encoding="UTF-8"?>
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0 http://maven.apache.org/xsd/settings-1.0.0.xsd">
<!--指定本地倉庫路徑-->
<localRepository>F:\java_maven_repo</localRepository>
<pluginGroups>
</pluginGroups>
<proxies>
</proxies>
<!-- servers
| This is a list of authentication profiles, keyed by the server-id used within the system.
| Authentication profiles can be used whenever maven must make a connection to a remote server.
|-->
<servers>
</servers>
<!-- 默認中央倉庫下載太慢,這里配置使用阿里云的倉庫 -->
<mirrors>
<mirror>
<id>alimaven</id>
<name>aliyun maven</name>
<url>http://maven.aliyun.com/nexus/content/groups/public/</url>
<mirrorOf>central</mirrorOf>
</mirror>
</mirrors>
<!--配置jdk版本的倉庫-->
<profiles>
<profile>
<id>jdk-1.8</id>
<activation>
<activeByDefault>true</activeByDefault>
<jdk>1.8</jdk>
</activation>
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
<maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
</properties>
</profile>
</profiles>
</settings>
File--setting--搜索maven ---點擊Maven -- 設置Maven Home Directory 為我們的上面設置的maven的目錄,同時修改User settings file為我們上面配置的 settings.xml.
注意:每次新建項目必須重新配置這里,否則會默認還原。
增加M2_HOME環境變量:
在系統環境變量中添加 M2_HOME=F:\apache-maven-3.3.9。然后保存即可。
將maven的bin目錄添加到 Path環境變量中:
%M2_HOME%\bin
在IDEA中創建maven工程,然后創建完后,點擊pom.xml進行添加依賴。
通常一個項目中,會有多個子項目,或者子模塊的存在。一般情況下,會先創建總的maven項目,然后在idea中可以通過右鍵添加模塊的方式來添加子模塊,并且在添加了子模塊之后,會在父項目中自動生成子模塊的信息,如:
會在父maven項目中的pom.xml中生成modules標簽
<modules>
<module>ct_producer</module>
<module>ct_consumer</module>
<module>ct_analysis</module>
</modules>
這表示有三個子模塊,名字是 ct_producer、ct_consumer、ct_analysis
然后每個子模塊都有自己的pom.xml。在父項目的pom.xml中,寫入的依賴,是可以被所有子模塊使用的,但是子模塊中自己定義的依賴只能自己使用。
一般來說,我們會在父項目中引入所有子項目都需要的依賴,然后在子項目中引入自己的依賴。
另外一種使用方式是:
在父項目中聲明但不引入依賴,使用以下方式:
<dependencyManagement>
<dependencies>
這里是具體依賴
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
<version>${scala.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
當子模塊中想要使用這個依賴,需要再次聲明,但是不再次指定依賴的版本。
<dependencies>
<dependency>
<groupId>org.scala-lang</groupId>
<artifactId>scala-library</artifactId>
</dependency>
</dependencies>
使用這種方式,能夠在父項目層次就指定依賴以及對應的版本,可以規范整個項目公共依賴的版本,防止由于依賴不一致導致的問題
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。