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


如果您有什麼高見,歡迎給我留言,咱們可以交流下,共同進步。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.