2011-01-19

使用 Maven 建立 Java、Web 和 Spring 專案

  • java 專案
    mvn archetype:create -DgroupId=idv.neil.java119 -DartifactId=java119 
    cd java119
    mvn eclipse:eclipse
    
  • java web 專案
    mvn archetype:create -DarchetypeArtifactId=maven-archetype-web -DgroupId=idv.neil.web119 -DartifactId=web119
    cd web119
    mvn eclipse:eclipse
    2012/2/22 - 修正
    mvn archetype:generate -DarchetypeArtifactId=maven-archetype-webapp -DgroupId=idv.neil.web119 -DartifactId=web119
    2012/7/25 - 補充
    Maven Archetype Plugin 目前無法指定產生的 Servlet 版本,寫死為 2.3,只能在產生後,手動修改 web.xml 為想要的版本。
    <!DOCTYPE web-app PUBLIC
     "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
     "http://java.sun.com/dtd/web-app_2_3.dtd" >
    <web-app>
      <display-name>Archetype Created Web Application</display-name>
    </web-app>
    Servlet 2.5 的 web.xml 範本。
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
       version="2.5">
    ...
    </web-app>
    
    Servlet 3.0 的 web.xml 範本。
    <?xml version="1.0" encoding="ISO-8859-1"?>
    <web-app xmlns="http://java.sun.com/xml/ns/javaee"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
                          http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
      version="3.0"
      metadata-complete="true">
    ...
    </web-app>
    
  • 兩種專案產生的pom.xml的差異
    • java 專案的 packaging 為 jar,java web 專案為 war。
    • java 專案多了
      <properties>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      </properties>
    • java web 專案多了
      <build>
      <finalName>web119</finalName>
      </build>
  • java 專案的目錄結構
    • src
      • main
        • java
      • test
        • java
    • target
  • java web 專案的目錄結構
    • src
      • main
        • resources
        • webapp
          • WEB-INF
            • web.xml
    • target
    • java web 專案得自行加上 src/main/java 的目錄。
  • 添加 Spring 到專案裡
    • 在 pom.xml 裡加上以下 dependency,只要加上 spring-context,就會連帶取得 spring-aop, spring-asm, spring-beans, spring-context, spring-core, spring-expression。
      <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>3.0.0.RELEASE</version>
      <scope>runtime</scope>
      </dependency>
    • 再使用 Maven 取得 source code
      mvn eclipse:eclipse -DdownloadSources=true 
---

沒有留言:

張貼留言