<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    初一七月

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

    Maven創建一個web應用

    使用Maven創建一個簡單的web應用,使用如下命令
    mvn archetype:create -DgroupId=com.mycompany.app -DartifactId=my-webapp -DarchetypeArtifactId=maven-archetype-webapp

    切換到my-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">
      
    <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標簽的值為war,這種打包類型配置讓Maven以war文件的形式生成一個web應用。一個打包類型為war的項目,將會在target/目錄創建一個war文件,這個文件的默認名稱是content-zh-webapp-0.6-SNAPSHOT.war。對于這個項目,默認的war文件是target/simple-webapp-1.0-SNAPSHOT.war。在這個項目中,我們已經通過在項目的構建配置中加入fileName元素來定義生成的war文件的名稱,根據這個設置,package階段生成的war文件為target/my-webapp.war。除此以外,還可以看到src/main/webapp下生成了簡單的一個index.jsp以及WEB-INF下的web項目配置文件web.xml

    接下來我們打包程序,運行如下命令
    mvn clean package

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

    配置Jetty插件

    在編譯并打包了我們的web應用之后,我們想要將它部署到一個servlet容器中,然后測試一下由Maven Archetype插件生成的index.jsp。一般我們發布web程序都需要下載Jetty或Tomcat等web容器,解壓分發包,然后將我們打好的war包拷貝到webapps目錄下,然后啟動服務器。利用Maven的Jetty插件可以省去這些步驟,在Maven中運行我們的web應用。為此,我們需要在項目的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編譯插件,此插件可以用來指定編譯器版本,以及其他一些編譯細節。

    修改完成后,運行如下命令,就可以啟動jetty發布我們的web應用了。
    mvn jetty:run

    控制臺打印顯示服務已經啟動
    [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頁面的內容了。

    啟動與關閉Jetty

    委托Jetty插件無限期運行的目標包括run、run-war和run-exploded。你可以在視窗控制終端(如DOS窗口)使用<ctrl-c>關閉它,或者在另一個視窗控制終端使用stop目標關閉。如果你希望能使用mvn jetty:stop 執行關閉命令,則需要你在插件中配置一個特殊的端口和控制鍵。下面是一個例子配置
    <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>

    啟動
    mvn jetty:start

    停止
    mvn jetty:stop

    至此一個簡單的web應用就完成了,你可以像其他web應用一樣對它進行添加修改了,而工程的調試運行還可以試用上面的jetty,還是很方便的。

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


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

    評論

    # re: Maven創建一個web應用  回復  更多評論   

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

    # re: Maven創建一個web應用  回復  更多評論   

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

    如何在eclipse jee中創建Maven project并且轉換為Dynamic web project,地址:http://www.zuidaima.com/blog/1618162161323008.htm
    2014-04-25 18:12 | 最代碼
    主站蜘蛛池模板: 色视频色露露永久免费观看| 国产国拍精品亚洲AV片| 特级aa**毛片免费观看| 国产专区一va亚洲v天堂| 久久综合国产乱子伦精品免费| 亚洲jizzjizz在线播放久| 亚洲精品视频免费观看| 色片在线免费观看| 黄网站色视频免费观看45分钟| 亚洲AV无码乱码国产麻豆穿越 | 国内精品久久久久影院免费| 亚洲美女大bbbbbbbbb| 免费va人成视频网站全| 最近中文字幕完整免费视频ww | 亚洲AV无码乱码麻豆精品国产| 日产国产精品亚洲系列| 中文毛片无遮挡高潮免费| av片在线观看永久免费| 在线aⅴ亚洲中文字幕| 亚洲av永久无码精品秋霞电影影院 | 国产精品免费大片| 爱爱帝国亚洲一区二区三区| 337p日本欧洲亚洲大胆艺术| 亚洲伊人久久综合影院| 我要看WWW免费看插插视频| 免费h视频在线观看| 一区二区三区免费高清视频| 亚洲国产区男人本色在线观看| 亚洲国产一成人久久精品| 亚洲AⅤ视频一区二区三区| 在线观看无码AV网站永久免费| 成全视频免费观看在线看| 亚洲欧美在线x视频| 亚洲AV无码久久久久网站蜜桃 | 久久毛片免费看一区二区三区| 亚洲精品无码人妻无码| 亚洲成A∨人片在线观看无码| 亚洲精品美女久久777777| 亚洲国产一区视频| 四虎影视永久免费观看网址| 女人被男人桶得好爽免费视频 |