初一七月

          你必須承認(rèn),我們生存的這個(gè)世界取決于自身的能力而非別人的保護(hù)(AW)
          隨筆 - 23, 文章 - 0, 評(píng)論 - 11, 引用 - 0
          數(shù)據(jù)加載中……

          Maven創(chuàng)建一個(gè)web應(yīng)用

          使用Maven創(chuàng)建一個(gè)簡(jiǎn)單的web應(yīng)用,使用如下命令
          mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

          切換到my-webapp目錄下,可以找到項(xiàng)目對(duì)象模型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.mycompany.app</groupId>
            
          <artifactId>my-webapp</artifactId>
            
          <packaging>war</packaging>
            
          <version>1.0-SNAPSHOT</version>
            
          <name>my-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>
            
          </dependencies>
            
          <build>
              
          <finalName>my-webapp</finalName>
            
          </build>
          </project>

          其中packaging標(biāo)簽的值為war,這種打包類型配置讓Maven以war文件的形式生成一個(gè)web應(yīng)用。一個(gè)打包類型為war的項(xiàng)目,將會(huì)在target/目錄創(chuàng)建一個(gè)war文件,這個(gè)文件的默認(rèn)名稱是content-zh-webapp-0.6-SNAPSHOT.war。對(duì)于這個(gè)項(xiàng)目,默認(rèn)的war文件是target/simple-webapp-1.0-SNAPSHOT.war。在這個(gè)項(xiàng)目中,我們已經(jīng)通過在項(xiàng)目的構(gòu)建配置中加入fileName元素來定義生成的war文件的名稱,根據(jù)這個(gè)設(shè)置,package階段生成的war文件為target/my-webapp.war。除此以外,還可以看到src/main/webapp下生成了簡(jiǎn)單的一個(gè)index.jsp以及WEB-INF下的web項(xiàng)目配置文件web.xml

          接下來我們打包程序,運(yùn)行如下命令
          mvn clean package

          my-webapp/target目錄下,我們看到了生成的my-webapp.war。

          配置Jetty插件

          在編譯并打包了我們的web應(yīng)用之后,我們想要將它部署到一個(gè)servlet容器中,然后測(cè)試一下由Maven Archetype插件生成的index.jsp。一般我們發(fā)布web程序都需要下載Jetty或Tomcat等web容器,解壓分發(fā)包,然后將我們打好的war包拷貝到webapps目錄下,然后啟動(dòng)服務(wù)器。利用Maven的Jetty插件可以省去這些步驟,在Maven中運(yùn)行我們的web應(yīng)用。為此,我們需要在項(xiàng)目的pom.xml文件中配置Jetty插件,配置后的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.mycompany.app</groupId>
            
          <artifactId>my-webapp</artifactId>
            
          <packaging>war</packaging>
            
          <version>1.0-SNAPSHOT</version>
            
          <name>my-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>
            
          </dependencies>
            
          <build>
              
          <finalName>my-webapp</finalName>
              
          <plugins>
                
          <plugin>
                  
          <groupId>org.mortbay.jetty</groupId>
                  
          <artifactId>maven-jetty-plugin</artifactId>
                
          </plugin>
                
          <plugin>
                  
          <artifactId>maven-compiler-plugin</artifactId>
                  
          <configuration>
                    
          <source>1.6</source>
                    
          <target>1.6</target>
                  
          </configuration>
                
          </plugin>
              
          </plugins>
            
          </build>
          </project>

          上面的文件除了jetty外,還配置了maven-compiler-plugin編譯插件,此插件可以用來指定編譯器版本,以及其他一些編譯細(xì)節(jié)。

          修改完成后,運(yùn)行如下命令,就可以啟動(dòng)jetty發(fā)布我們的web應(yīng)用了。
          mvn jetty:run

          控制臺(tái)打印顯示服務(wù)已經(jīng)啟動(dòng)
          [INFO] Configuring Jetty for project: my-webapp Maven Webapp
          [INFO] Webapp source directory = C:\Documents and Settings\caojh\my-webapp\src\main\webapp
          [INFO] Reload Mechanic: automatic
          [INFO] Classes = C:\Documents and Settings\caojh\my-webapp\target\classes
          2011-01-27 19:46:21.028:INFO::Logging to STDERR via org.mortbay.log.StdErrLog
          [INFO] Context path = /my-webapp
          [INFO] Tmp directory =  determined at runtime
          [INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml
          [INFO] Web overrides =  none
          [INFO] web.xml file = C:\Documents and Settings\caojh\my-webapp\src\main\webapp\WEB-INF\web.xml
          [INFO] Webapp directory = C:\Documents and Settings\caojh\my-webapp\src\main\webapp
          [INFO] Starting jetty 6.1.26 
          2011-01-27 19:46:21.200:INFO::jetty-6.1.26
          2011-01-27 19:46:21.450:INFO::No Transaction manager found - if your webapp requires one, please configure one.
          2011-01-27 19:46:21.731:INFO::Started SelectChannelConnector@0.0.0.0:8080
          [INFO] Started Jetty Server

          在瀏覽器中輸入http://localhost:8080/my-webapp/,就可以看到index.jsp頁面的內(nèi)容了。

          啟動(dòng)與關(guān)閉Jetty

          委托Jetty插件無限期運(yùn)行的目標(biāo)包括run、run-war和run-exploded。你可以在視窗控制終端(如DOS窗口)使用<ctrl-c>關(guān)閉它,或者在另一個(gè)視窗控制終端使用stop目標(biāo)關(guān)閉。如果你希望能使用mvn jetty:stop 執(zhí)行關(guān)閉命令,則需要你在插件中配置一個(gè)特殊的端口和控制鍵。下面是一個(gè)例子配置
          <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.mycompany.app</groupId>
            
          <artifactId>my-webapp</artifactId>
            
          <packaging>war</packaging>
            
          <version>1.0-SNAPSHOT</version>
            
          <name>my-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>
            
          </dependencies>
            
          <build>
              
          <finalName>my-webapp</finalName>
              
          <plugins>
                
          <plugin>
                  
          <groupId>org.mortbay.jetty</groupId>
                  
          <artifactId>maven-jetty-plugin</artifactId>
                  
          <configuration>
                    
          <stopPort>9966</stopPort>
                    
          <stopKey>foo</stopKey>
                  
          </configuration>
                
          </plugin>
                
          <plugin>
                  
          <artifactId>maven-compiler-plugin</artifactId>
                  
          <configuration>
                    
          <source>1.6</source>
                    
          <target>1.6</target>
                  
          </configuration>
                
          </plugin>
              
          </plugins>
            
          </build>
          </project>

          啟動(dòng)
          mvn jetty:start

          停止
          mvn jetty:stop

          至此一個(gè)簡(jiǎn)單的web應(yīng)用就完成了,你可以像其他web應(yīng)用一樣對(duì)它進(jìn)行添加修改了,而工程的調(diào)試運(yùn)行還可以試用上面的jetty,還是很方便的。

          更詳細(xì)的配置
          http://docs.codehaus.org/display/JETTY/Maven+Jetty+Plugin


          posted on 2011-01-27 20:29 初一七月 閱讀(8850) 評(píng)論(2)  編輯  收藏 所屬分類: Maven

          評(píng)論

          # re: Maven創(chuàng)建一個(gè)web應(yīng)用  回復(fù)  更多評(píng)論   

          是不是把war包拷貝到tomcat的webapps下面的話,是會(huì)被自動(dòng)部署的?一定要重啟server嗎?
          2013-10-18 21:39 | 伊利討論區(qū)

          # re: Maven創(chuàng)建一個(gè)web應(yīng)用  回復(fù)  更多評(píng)論   

          最代碼上有更詳細(xì)的步驟文檔:
          如何在eclipse jee中檢出項(xiàng)目并轉(zhuǎn)換為Maven project,最后轉(zhuǎn)換為Dynamic web project,地址:http://www.zuidaima.com/blog/1618180875144192.htm

          如何在eclipse jee中創(chuàng)建Maven project并且轉(zhuǎn)換為Dynamic web project,地址:http://www.zuidaima.com/blog/1618162161323008.htm
          2014-04-25 18:12 | 最代碼

          只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 东港市| 固安县| 文山县| 宝清县| 衡水市| 灵川县| 根河市| 广东省| 时尚| 龙口市| 浦县| 华宁县| 山阳县| 玛沁县| 淮南市| 灵璧县| 常宁市| 华容县| 古丈县| 正安县| 大悟县| 上虞市| 星座| 达拉特旗| 逊克县| 玛曲县| 鹿邑县| 涡阳县| 定日县| 宣恩县| 望奎县| 丽江市| 兰西县| 揭西县| 卓资县| 德化县| 清涧县| 青铜峡市| 瓦房店市| 县级市| 尉犁县|