Table of contents
6 Dependency Management
Dependency management tool 可以幫我地下載同管理我地呢一個 project 需要用到既 3rd party libraries,同埋 build project 時既相關設定。
當第個 developer 要開發呢個 project,佢只需要用個 Maven command 就可以自動下載返所需既 dependency JAR files,
唔洗你 copy 啲 IDE 特定 format 既 settings 畀果個 developer。
最熱門既 dependency management tool 係 Maven,而第二多人用既係 Gradle。
6.1 冇 dependency management 之下點做
就算冇用 dependency management tool,喺 Eclipse 都可以加到 3rd party libraries。
- 喺 Eclipse 左邊 Package Explorer 度 right click 個 non-Maven/Gradle Java project
- Context menu > Properties
- Java build path
- Add External JAR...
- 揀個係 API 既 JAR file
- Apply and close
- 喺 Package Explorer 你個 Java project 底下,expand Referenced Libraries
- 你會見到有你 add 左既 JAR file
但當我地將 source code 交畀第個 developer 開發既時候,要 keep 住 .classpath
呢個檔案,否則會冇曬啲 Referenced Libraries。
6.2 喺 Eclipse 用 Maven
一般黎講,當我地喺 Eclipse 改左 Maven project 既 pom.xml
檔案之後,Eclipse 會自動更新 project。
但如果冇發生到,我地可以 right-click 個 project > Maven > Update project...。
6.3 取得 Maven library
無論係 Maven 定係 Gradle,用既都係 Maven public repository https://repo1.maven.org/maven2/
。
可以 google search library 名 + maven
,例如 jsoup maven
,就會搵到 org.jsoup » jsoup - Maven Repository
。
揀左特定版本之後,copy Maven 配置:
1<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
2<dependency>
3 <groupId>org.jsoup</groupId>
4 <artifactId>jsoup</artifactId>
5 <version>1.13.1</version>
6</dependency>
然後喺 pom.xml
裡面呢個位 paste 上面既 XML code:
<dependencies>
<!-- paste here -->
</dependencies>
如果用 Gradle:
// https://mvnrepository.com/artifact/org.jsoup/jsoup
compile group: 'org.jsoup', name: 'jsoup', version: '1.13.1'
去 build.gradle
:
dependencies {
// paste here
}
喺 Eclipse 度 save 左個 pom.xml
檔(或 build.gradle
檔,如果係 Gradle)之後,Eclipse 就會自動 refresh 同 resolve,
下載 library 既 JAR 檔,再幫你重新 build 過個 project。
6.4 使用 Maven commands
如果要用 mvn
command 既話,就要去系統設定修改 environment variables,加入 JAVA_HOME
(例如 C:\Program Files\Java\jdk1.8.0_333
)。
註:一定要用 JDK,而唔係 JRE。
以下係常用既 Maven commands。
生成 project artifact(如 JAR 檔):
mvn clean package
生成 project artifact(如 JAR 檔),跳過所有 unit tests:
mvn clean package -Dmaven.test.skip=true
生成 project artifact(如 JAR 檔)並安裝到自己既 .m2
folder,跳過所有 unit tests:
mvn clean install -Dmaven.test.skip=true
Compile Maven project:
mvn compile
Check Maven 以及 JDK 版本:
mvn -v
參考資料:
6.5 本地 .m2
folder
如果需要重新由線上既 Maven repository 下載返啲 3rd party libraries,或者之前做 project 既時候經 mvn install
安裝過舊版既 project artifact,
而令到 Maven 一直用左本地 .m2
folder 裡面既 JAR 檔而唔係重新 compile + install,咁我地可以清空本地 Maven repository 既某啲 folders,
甚或成個本地 Maven repository(重新下載可能比較需時)。
OS | 位置 |
---|
Windows | %HOMEDRIVE%/%HOMEPATH%/.m2/repository/ |
macOS | ~/.m2/repository/ |
裡面既資料夾係以 Maven pom.xml
既 <groupId>
黎開既,所以 Spring framework 果啲 <groupId>
以 org.springframework
開頭,
就會出現喺 org/springframework/
資料夾裡面。