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