IntelliJ IDEA 12.0搭建Maven Web SSH2架構項目樣本(二)_IDEA
來源:互聯網
上載者:User
3.引入一個現有的Maven-web-application項目
引入Maven項目和普通的web項目有所不同,如果你通過【File】->【Import Project】的方式來引入一個Maven-web項目的話,其結構項目目錄結構會出現混亂。正確的方式如下圖:
這樣才是引入一個已經存在的maven-web項目的正確方式,小小的注意點。
4.環境配置與執行調試;
針對一個項目的運行、編譯和調試,首先我們引入一個項目,如上兩幅圖所示,然後用Maven進行編譯,如下圖所示按住Ctrl鍵選擇clean 和 install兩個選項,然後執行:
這是Run控制台執行成功的結果,代表編譯成功。
第二步,添加Tomcat服務,如下圖:
選擇Tomcat安裝路徑:
第三步,部署 war包,如下圖:
因為是調試,所以選擇 FrameModel:war exploded。在你真正發布的程式中是 FrameModel:war這個包,注意分清。然後,進行Debug,如下圖:
調試成功後,控制台結果如下:
5.Maven-web-application項目核心檔案:pom.xml檔案的結構分析
OK,重頭戲開始,Maven的pom.xml檔案。pom檔案定義了你項目中所有的第三方依賴和編譯行為。這裡給出一個簡單的例子,要注意的地方在代碼中都已經指出,代碼如下:
[html] view plain copy <span style="font-family:SimSun;"><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.Yangcl.org</groupId> <artifactId>FrameModel</artifactId> <packaging>war</packaging> <!--這裡定義了你項目的打包方式,有war/bundle等--> <name>FrameModel</name> <version>1.0.0-SNAPSHOT</version> <!--證明這是一個快照版本--> <properties> <!--為pom定義一些常量,在pom中的其它地方可以直接引用--> <spring.version>3.1.1.RELEASE</spring.version> <struts.version>2.3.4</struts.version> <hibernate.version>3.6.9.Final</hibernate.version> <axis2.version>1.6.2</axis2.version> <mysql.version>5.1.9</mysql.version> <aspectj.version>1.6.9</aspectj.version> <slf4j.version>1.6.4</slf4j.version> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <!-- 一個項目所依賴的全部Jar檔案資訊定義描述,這裡不一一列出--> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-core</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-web</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-beans</artifactId> <version>${spring.version}</version> </dependency> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-tx</artifactId> <version>${spring.version}</version> </dependency> </dependencies> <!--針對一個項目的編譯環節--> <build> <!--finalName 屬性是你項目的名字--> <finalName>FrameModel</finalName> <plugins> <!--編譯操作的定義--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>2.3.2</version> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> <!--Maven的打包部署與Debug行為描述--> <plugin> <artifactId>maven-war-plugin</artifactId> <version>2.1.1</version> <configuration> <!-- 有這個定義,則你調試的時候不會進入target目錄下,你就不用總去重啟服務,尤其在頁面調試的時候很方便 --> <webappDirectory>${basedir}/src/main/webapp</webappDirectory> <warSourceDirectory>${basedir}/src/main/webapp</warSourceDirectory> </configuration> </plugin> <!--maven-surefire-plugin支援JUnit和TestNG-->
<!--預設情況下,maven-surefire-plugin的test目標會自動執行測試源碼-->
<!--路徑下所有以Test開頭、Test或TestCase結尾的的Java類。--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <version>2.7.1</version> <configuration> <skipTests>true</skipTests> <!--這裡選擇跳過測試> </configuration> </plugin> <!--Maven Clean 操作--> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-clean-plugin</artifactId> <version>2.4.1</version> <configuration> <filesets> <fileset> <directory>${basedir}/src/main/webapp/WEB-INF/</directory> <excludes> <!--排除哪些內容不被清除--> <excluse>**/web.xml</excluse> </excludes> </fileset> </filesets> </configuration> </plugin> </plugins> </build> </project>
OK,到現在為止,Maven-web-application的所有實現、調試、細節和原理基本都已經介紹完畢。這裡順便點評一下幾個主流的IDE:Eclipse、MyEclipse和IntelliJ IDEA。這三個編輯器裡我個人覺得最好用的還是IDEA,畢竟是收費的軟體,使用者體驗就是高。MyEclipse明顯有些臃腫,而且針對ExtJS4.0以上的版本,他支援的不好,即使在調節和最佳化了以後,也還是會出現記憶體溢出的問題;你可能會說是你自己不會用,我的怎麼就沒事呢。那是因為你遇到的項目小。同樣在對 Maven 的支援上,Eclipse也明顯沒有 IDEA 做的好。以前閑來無事,還特意探究了下這兩個IDE的外掛程式機制,我發現IDEA的外掛程式機制和Eclipse、MyEclipse區別還是很大,雖然思想都是基於OSGI。我個人覺得 IDEA 十分適合開發Web程式,尤其是Maven Web程式。o(︶︿︶)o 唉...好累,為了改這篇部落格我重新裝了一個空白的虛擬機器,希望能對大家有所協助吧,下面給大家兩個連結,都是做好的Maven web程式,自己可以試一試。
第一個項目工程:http://download.csdn.net/detail/breatheryang/5294757
第二個項目工程:http://download.csdn.net/detail/breatheryang/5549101
如果您有什麼高見,歡迎給我留言,咱們可以交流下,共同進步。