前言
本文將介紹開發(fā)環(huán)境的配置以及如何使用intellij idea 和 maven 創(chuàng)建、開發(fā)和管理項(xiàng)目。
開發(fā)環(huán)境
項(xiàng)目創(chuàng)建與運(yùn)行
啟動 intellij idea,選擇“Create New Project”或通過菜單“File -> New -> Project”來創(chuàng)建新項(xiàng)目。
選擇“Maven”,然后選擇 Maven 項(xiàng)目模板“maven-archetype-quickstart”。
立即學(xué)習(xí)“Java免費(fèi)學(xué)習(xí)筆記(深入)”;
接下來,輸入項(xiàng)目的 Maven 坐標(biāo)信息。
在 POM 文件中,groupId、artifactId、packaging 和 version 被稱為 Maven 坐標(biāo),用于唯一標(biāo)識一個項(xiàng)目。通過這些坐標(biāo),我們可以指定項(xiàng)目所依賴的其他項(xiàng)目、插件或父項(xiàng)目。
參數(shù) | 說明 |
---|---|
groupId | 代表組織和整個項(xiàng)目的唯一標(biāo)志。例如,所有的 Maven 組件的 groupId 都是 org.apache.maven。 |
artifactId | 具體項(xiàng)目的名稱,與 groupId 一起確定項(xiàng)目在 Maven 倉庫中的位置。例如,groupId=org.codehaus.mojo, artifactId=my-project 的項(xiàng)目,在 Maven 倉庫中的位置為:$M2_REPO/org/codehaus/mojo/my-project。 |
version | 用于說明目前項(xiàng)目的版本,用于引用依賴時(shí)確定具體依賴的版本號。 |
packaging | 規(guī)定項(xiàng)目的輸出格式,包括 jar、war、pom、apk 等,根據(jù)實(shí)際需要確定。例如,開發(fā)一般的 Java 庫,可以使用 jar packaging;開發(fā) android 應(yīng)用則使用 apk packaging。 |
一般 Maven 坐標(biāo)的格式如下:
groupId:artifactId:packaging:version
雖然在不將項(xiàng)目提交到 Maven 官方倉庫的情況下,這不是強(qiáng)制約束,但建議無論大小項(xiàng)目都遵守 Maven 的命名標(biāo)準(zhǔn)。
選擇 Maven 配置和倉庫等設(shè)置。之前已經(jīng)配置過,可以保留默認(rèn)設(shè)置。
指定項(xiàng)目名稱和項(xiàng)目目錄。項(xiàng)目名稱僅用于顯示,與 Maven 坐標(biāo)無關(guān)。
如果項(xiàng)目文件夾未創(chuàng)建,會提示幫你創(chuàng)建,選擇“OK”后,IDEA 會進(jìn)行項(xiàng)目創(chuàng)建和初始化工作。
閱讀 IDEA 使用提示。
開啟 Maven Project 自動導(dǎo)入。
項(xiàng)目創(chuàng)建完成后,IDEA 會識別到這是一個 Maven 項(xiàng)目,并詢問是否導(dǎo)入到項(xiàng)目的 IDEA 配置中。選擇開啟自動導(dǎo)入即可。
啟動應(yīng)用程序。
雙擊打開 App.java 文件,然后在文件編輯區(qū)域喚出鼠標(biāo)右鍵菜單,選擇“Run App.main()”;或者直接使用快捷鍵 Ctrl+Shift+F10,IDEA 會自動幫你創(chuàng)建調(diào)試配置并啟動應(yīng)用程序。運(yùn)行結(jié)果會在 IDEA 底部的 console 面板顯示。(當(dāng)然也可以通過運(yùn)行 AppTest 來運(yùn)行單元測試)
至此,我們就完成了使用 IntelliJ IDEA 和 Maven 創(chuàng)建并運(yùn)行的第一個項(xiàng)目。
項(xiàng)目結(jié)構(gòu)與 Maven 配置
項(xiàng)目結(jié)構(gòu)說明
- 根目錄說明
目錄/文件 | 說明(ken.io) |
---|---|
.idea | IDEA 配置文件目錄 |
src | 源文件目錄(源代碼、靜態(tài)資源等) |
target | 編譯輸出目錄,用于存放編譯后的文件(類文件、war 包、jar 包等) |
helloworld.iml | IDEA 用于記錄 Module 配置的文件 |
pom.xml | Maven Project 配置文件 |
External Libraries | 用于查看 Project 的依賴 |
- 項(xiàng)目源文件目錄說明
目錄/文件 | 說明(ken.io) |
---|---|
src/main | 項(xiàng)目主目錄 |
src/main/java | 項(xiàng)目的源代碼所在的目錄(Sources Root) |
src/main/resources | 項(xiàng)目的資源文件所在的目錄(Resources Root) |
src/main/filters | 項(xiàng)目的資源過濾文件所在的目錄 |
src/main/webapp | web 項(xiàng)目的配置、視圖等目錄 |
src/main/java/io.ken.helloworld | io.ken.helloworld 是 module 的默認(rèn) package,Maven 的規(guī)范 |
src/test | 項(xiàng)目測試目錄(Sources Root) |
src/test/java | 測試代碼所在的目錄(Resources Root) |
src/test/resources | 測試相關(guān)的資源文件所在的目錄 |
src/test/filters | 測試相關(guān)的資源過濾文件所在的目錄 |
大多數(shù)情況下,一個項(xiàng)目都只有一個 Module 構(gòu)成,需要進(jìn)行分層都會通過 package 來完成。例如:
pom.xml 文件說明
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelversion>4.0.0</modelversion> <groupid>io.ken.helloworld</groupid> <artifactid>helloworld</artifactid> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>helloworld</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceencoding>UTF-8</project.build.sourceencoding> <junit.version>3.8.1</junit.version> </properties> <dependencies> <dependency> <groupid>junit</groupid> <artifactid>junit</artifactid> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> </project>
參數(shù) | 說明 |
---|---|
modelVersion | Maven 配置版本 |
groupId | 代表組織和整個項(xiàng)目的唯一標(biāo)志。例如,所有的 Maven 組件的 groupId 都是 org.apache.maven。 |
artifactId | 具體項(xiàng)目的名稱,與 groupId 一起確定項(xiàng)目在 Maven 倉庫中的位置。例如,groupId=org.codehaus.mojo, artifactId=my-project 的項(xiàng)目,在 Maven 倉庫中的位置為:$M2_REPO/org/codehaus/mojo/my-project。 |
version | 用于說明目前項(xiàng)目的版本,用于引用依賴時(shí)確定具體依賴的版本號。 |
packaging | 規(guī)定項(xiàng)目的輸出格式,包括 jar、war、pom、apk 等,根據(jù)實(shí)際需要確定。例如,開發(fā)一般的 Java 庫,可以使用 jar packaging;開發(fā) Android 應(yīng)用則使用 apk packaging。 |
name | 項(xiàng)目顯示名稱 |
url | 項(xiàng)目地址 |
properties | 用于定義變量,可以在當(dāng)前配置文件 pom.xml 以及子 Module 的 pom.xml 中引用,引用方式:${propertyname},例如:${junit.version} |
dependencies | 用戶配置 Module 的依賴 |
備注
本文介紹了如何使用 IntelliJ IDEA 和 Maven 創(chuàng)建、開發(fā)和管理項(xiàng)目。如果在實(shí)踐過程中遇到問題,歡迎加入我們的交流群進(jìn)行討論。