一.配置Maven環境
1.下載apache-maven文件,選擇自己需要的版本,地址: http://mirror.bit.edu.cn/apache/maven/maven-3/3.5.0/binaries/apache-maven-3.5.0-bin.zip
2.解壓1所下載文件,本人解壓到:D:\server\maven\apache-maven-3.5.0
3.配置Maven環境變量
a. MAVEN_HOME : D:\server\maven\apache-maven-3.5.0
b.PATH : %MAVEN_HOME%\bin;
c. MAVEN_OPTS : -Xms128m -Xmx512m -Duser.language=zh -Dfile.encoding=UTF-8
4.在CMD中輸入mvn -v,如出現下列信息,表示配置成功。
其中會顯示Java 配置環境以及Maven配置環境
二.修改Maven倉庫路徑
1.在D盤(個人根據自身情況而定)新建文件,如下:
2.配置D:\server\maven\中setting.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"> <pluginGroups /> <proxies /> <servers /> <localRepository>D:/server/maven/repository</localRepository> <mirrors> <mirror> <id>alimaven</id> <mirrorOf>central</mirrorOf> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/repositories/central/</url> </mirror> <mirror> <id>alimaven</id> <name>aliyun maven</name> <url>http://maven.aliyun.com/nexus/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>central</id> <name>Maven Repository Switchboard</name> <url>http://repo1.maven.org/maven2/</url> <mirrorOf>central</mirrorOf> </mirror> <mirror> <id>repo2</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://repo2.maven.org/maven2/</url> </mirror> <mirror> <id>ibiblio</id> <mirrorOf>central</mirrorOf> <name>Human Readable Name for this Mirror.</name> <url>http://mirrors.ibiblio.org/pub/mirrors/maven2/</url> </mirror> <mirror> <id>jboss-public-repository-group</id> <mirrorOf>central</mirrorOf> <name>JBoss Public Repository Group</name> <url>http://repository.jboss.org/nexus/content/groups/public</url> </mirror> <mirror> <id>google-maven-central</id> <name>Google Maven Central</name> <url>https://maven-central.storage.googleapis.com </url> <mirrorOf>central</mirrorOf> </mirror> <!-- 中央倉庫在中國的鏡像 --> <mirror> <id>maven.net.cn</id> <name>oneof the central mirrors in china</name> <url>http://maven.net.cn/content/groups/public/</url> <mirrorOf>central</mirrorOf> </mirror> </mirrors> </settings>
注意,如果MAVEN是安裝文件,settings.xml在“C:\Users\xxx\.m2\settings”也要重新修改一下,否則cmd下運行mvn使用的倉庫沒有修改。
三.IntellIJ IDEA 中配置Maven
Idea 自帶了apache maven,默認使用的是內置maven,所以我們可以配置全局setting,來調整一下配置,比如遠程倉庫地址,本地編譯環境變量等。
1.打開Settings,在輸入框輸入maven,如圖
2.如果本地設置了MAVEN_OPTS 系統環境變量,這個步驟可以忽略。
3.如果配置了本地apache-maven setting.xml 中的軟件源,這步驟可以忽略。
利用maven骨架建立一個webapp
- 選擇create new project-Maven-Create from archetype。找到maven-archetype-webapp這個骨架,然后next。
- 輸入GroupId和ArtifactId后下一步。
- 填寫本地的maven環境,這里可以選擇自己本地的環境,也可以用idea自帶的maven3.0.5。配置相應的配置文件,idea自帶的maven是沒有配置文件的,需要單獨配置的可以在相應的目錄中添加setting.xml文件,例如需要配置jdk版本或者maven mirror的。
由於maven骨架和一些jar需要去maven的倉庫下載,所以創建項目的時候速度會非常慢(外國的服務器你懂得),因此我們可以直接訪問http://repo1.maven.org/maven2/archetype-catalog.xml,把這個xml下載下來放到本地的maven目錄中,然后在添加一個參數archetypeCatalog=internal就可以了。 - next 填寫項目名稱,finish即可。
建立相應的目錄
項目創建完成后,src-main下建立java目錄后,是無法在該目錄下創建新的包和java類等文件的。在idea中需要對目錄進行標注。
- Sources 一般用於標注類似 src 這種可編譯目錄。有時候我們不單單項目的 src 目錄要可編譯,還有其他一些特別的目錄也許我們也要作為可編譯的目錄,就需要對該目錄進行此標注。只有 Sources 這種可編譯目錄才可以新建 Java 類和包,這一點需要牢記。
- Tests 一般用於標注可編譯的單元測試目錄。在規范的 maven 項目結構中,頂級目錄是 src,maven 的 src 我們是不會設置為 Sources 的,而是在其子目錄 main 目錄下的 java 目錄,我們會設置為 Sources。而單元測試的目錄是 src - test - java,這里的 java 目錄我們就會設置為 Tests,表示該目錄是作為可編譯的單元測試目錄。一般這個和后面幾個我們都是在 maven 項目下進行配置的,但是我這里還是會先說說。從這一點我們也可以看出 IntelliJ IDEA 對 maven 項目的支持是比較徹底的。
- Resources 一般用於標注資源文件目錄。在 maven 項目下,資源目錄是單獨划分出來的,其目錄為:src - main -resources,這里的 resources 目錄我們就會設置為 Resources,表示該目錄是作為資源目錄。資源目錄下的文件是會被編譯到輸出目錄下的。
Test Resources 一般用於標注單元測試的資源文件目錄。在 maven 項目下,單元測試的資源目錄是單獨划分出來的,其目錄為:src - test -resources,這里的 resources 目錄我們就會設置為 Test Resources,表示該目錄是作為單元測試的資源目錄。資源目錄下的文件是會被編譯到輸出目錄下的。- Excluded 一般用於標注排除目錄。被排除的目錄不會被 IntelliJ IDEA 創建索引,相當於被 IntelliJ IDEA 廢棄,該目錄下的代碼文件是不具備代碼檢查和智能提示等常規代碼功能。
- 通過上面的介紹,我們知道對於非 maven 項目我們只要會設置 src 即可。
(引用自http://wiki.jikexueyuan.com/project/intellij-idea-tutorial/eclipse-java-web-project-introduce.html)
標注完后,建立如下的目錄。
配置Maven和SpringMVC
配置Maven的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"> <modelVersion>4.0.0</modelVersion> <groupId>com.example</groupId> <artifactId>maven-springmvc</artifactId> <packaging>war</packaging> <version>1.0-SNAPSHOT</version> <name>maven-springmvc 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>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.21</version> </dependency> <!--j2ee相關包 servlet、jsp、jstl--> <dependency> <groupId>javax.servlet</groupId> <artifactId>javax.servlet-api</artifactId> <version>3.1.0</version> </dependency> <dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2</version> </dependency> <dependency> <groupId>javax.servlet</groupId> <artifactId>jstl</artifactId> <version>1.2</version> </dependency> <!--mysql驅動包--> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.35</version> </dependency> <!--spring相關包--> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>4.3.1.RELEASE</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-webmvc</artifactId> <version>4.3.1.RELEASE</version> </dependency> <!--其他需要的包--> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> <version>3.4</version> </dependency> <dependency> <groupId>commons-fileupload</groupId> <artifactId>commons-fileupload</artifactId> <version>1.3.1</version> </dependency> </dependencies> <build> <finalName>maven-springmvc</finalName> <resources> <!--表示把java目錄下的有關xml文件,properties文件編譯/打包的時候放在resource目錄下--> <resource> <directory>${basedir}/src/main/java</directory> <includes> <include>**/*.properties</include> <include>**/*.xml</include> </includes> </resource> <resource> <directory>${basedir}/src/main/resources</directory> </