本文權(quán)當(dāng)我的一個筆記。如果你尚未安裝 IntelliJ IDEA.請安裝后再來看本文。本文參考了此文.
本文只是個創(chuàng)建項目的入門教程,其中不涉及一些理念的探究以及一些名詞的解釋。
水平有限,對于文中的疏漏錯誤,歡迎各位斧正。
一. 新建項目

或者點 菜單File ~ create Project 都是一樣的。
-
創(chuàng)建ParentProject(主項目)
image.png
這里我們不用點create from archetype. 主項目其實就是個框架,用來包含各個子模塊的。
image.png- GroupId: 一般是組織+域名+項目名
- ArtifactId:項目名稱。
-
Version:一般用默認即可。
image.png
這一步?jīng)]什么好說的,就是讓你設(shè)置項目名稱和位置。點Finish就完成了主項目的創(chuàng)建
-
創(chuàng)建webapp模塊
點擊側(cè)邊欄的Project標(biāo)簽來顯示Project窗口,在項目上右擊創(chuàng)建新的模塊。
image.png
image.png
注意這里要選擇webapp
image.png
填寫你的webapp的ArtifactId
image.png
這一步也沒什么好說的,他是讓你選擇Maven的路徑,這里IDEA自帶了Maven3,用默認的就可以了。
image.png
同樣,這一步讓你選擇保存位置。也沒什么好說的。點Finish后稍等片刻(maven在創(chuàng)建你需要的結(jié)構(gòu))。
生成好后,當(dāng)前結(jié)構(gòu)就如下:
image.png -
我們再來創(chuàng)建個webservice模塊
和上面創(chuàng)建過程類似,只是這次我們不要選webapp
image.png
創(chuàng)建好類似下面:
image.png -
同樣我們再創(chuàng)建個webdao
和創(chuàng)建webservice模塊一樣,不用選webapp.創(chuàng)建完類似下面:
image.png -
讓webapp模塊依賴webdao和webservice
image.png
選擇Project structure
image.png
image.png
image.png
這樣設(shè)置依賴后,webapp模塊就能訪問webservice模塊和webdao模塊里的public類,但是maven在編譯的時候還是會報錯,因為maven的 webapp模塊 dependency依賴里沒有webservice模塊和webdao模塊。
所以還需要到webapp模塊的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/maven-v4_0_0.xsd"> <parent> <artifactId>MyWeb</artifactId> <groupId>com.threshold.myweb</groupId> <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> <artifactId>webapp</artifactId> <packaging>war</packaging> <name>webapp Maven Webapp</name> <url>http://maven.apache.org</url> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> <dependency> <groupId>com.threshold.myweb</groupId> <artifactId>webservice</artifactId> <version>1.0-SNAPSHOT</version> </dependency> <dependency> <groupId>com.threshold.myweb</groupId> <artifactId>webdao</artifactId> <version>1.0-SNAPSHOT</version> </dependency> </dependencies> <build> <finalName>webapp</finalName> </build> </project>這樣,基本上就算是配置好了。
-
其他配置
-
由于我們的parent主項目只是用來包裹子模塊的,所以可以把主Project下的src文件夾刪除.
image.png
右擊刪除src目錄即可。
-
webapp模塊還缺少java目錄。同樣打開Project Structure窗口做下面的配置。
image.png
創(chuàng)建好java目錄后再點上面的Sources按鈕設(shè)為源碼目錄
image.png
設(shè)置好后java文件夾會變藍色。
image.png
同理還需要對webservice模塊和webdao模塊的java目錄設(shè)為Sources處理(只是這兩個模塊不需要創(chuàng)建java文件夾,默認已經(jīng)有了)
image.png
全部設(shè)置好點OK保存配置。
image.png
Project目錄還應(yīng)像上圖那樣創(chuàng)建包。每個模塊的包名都應(yīng)以你的groupId+artifactID為開頭。
-
-
配置Tomcat運行環(huán)境
先要下載Tomcat 以及解壓到一個目錄,這我就不多說了。自己去官網(wǎng)下載吧。
打開配置窗口.png
image.png
image.png
image.png
再點擊右邊Application Server 旁邊的Configure.. 按鈕,添加Tomcat 目錄
Tomcat-Server.png
下拉選擇Tomcat-Server.png
選擇Development標(biāo)簽,添加Artifact.png
選擇war exploded.png
把update action改下(這步可不做).png
現(xiàn)在默認運行環(huán)境就是剛剛配置好的.png -
maven配置優(yōu)化
我們每個模塊可能都需要單元測試,比如JUnit,通常我們會在各個模塊pom.xml下添加JUnit的依賴,但是一旦模塊很多再加上JUnit的升級,每個模塊下的pom.xml都需要更改,增加工作量不說還容易忘記某個模塊,這會導(dǎo)致同一個項目可能存在同時依賴某個庫的不同版本,而這是我們不想看到的。為了統(tǒng)一管理依賴庫的版本,建議將各個子模塊所依賴的庫信息寫到主項目下的pom.xml中。
image.png
在modules下面添加:
<properties> <hibernate.annotations.version>3.3.0.ga</hibernate.annotations.version> <junit.version>4.12</junit.version> </properties> <dependencyManagement> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>${junit.version}</version> <scope>test</scope> </dependency> </dependencies> </dependencyManagement>添加好的pom.xml如下:
image.png
在這里提示一下,可以點氣泡通知允許自動導(dǎo)入依賴。這樣新添加的依賴就自動加入到你的模塊中了。
之后再打開各個模塊的pom.xml文件,如果有需要的依賴,在子模塊中引入即可,而且不需要寫依賴的模塊的version(因為主項目的pom.xml已經(jīng)定義了)
image.png
這里對于依賴的子模塊,建議使用引用的方式。 -
其他配置
通常maven項目創(chuàng)建好后,即使你安裝的jdk是1.8的,但是卻使用不了1.8的特性。例如下面的提示:
image.png
解決方案如下,在主項目的pom.xml中加入plugin配置。
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
最后整理好的pom.xml如下:

現(xiàn)在盡情的去寫你的Hello Web吧。



































