maven 構建的 webapp 基本配置

1、核心依賴java

webapp 的依賴,大體分爲三部分:基本的 spring 組件依賴、日誌及測試組件、web組件依賴等。大體爲:mysql

<dependencies>
    <!-- 1.base spring dependency -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-core</artifactId>
      <version>${version.springframework}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-beans</artifactId>
      <version>${version.springframework}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>${version.springframework}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context-support</artifactId>
      <version>${version.springframework}</version>
    </dependency>
    
    <!-- 2.base logger and test dependency -->
    <dependency>
      <groupId>org.apache.logging.log4j</groupId>
      <artifactId>log4j-core</artifactId>
      <version>${version.log4j}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-api</artifactId>
      <version>${version.slf4j}</version>
    </dependency>
    <dependency>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
      <version>${version.slf4j}</version>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${version.junit}</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-test</artifactId>
      <version>${version.springframework}</version>
      <scope>test</scope>
    </dependency>
    
    <!-- 3.base web dependency -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-web</artifactId>
      <version>${version.springframework}</version>
    </dependency>
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-webmvc</artifactId>
      <version>${version.springframework}</version>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>javax.servlet-api</artifactId>
      <version>${version.javax.servlet.api}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>javax.servlet.jsp</groupId>
      <artifactId>javax.servlet.jsp-api</artifactId>
      <version>${version.javax.servlet.jsp.api}</version>
      <scope>provided</scope>
    </dependency>
    <dependency>
      <groupId>com.tutianer</groupId>
      <artifactId>common</artifactId>
      <version>${version.tutianer.common}</version>
    </dependency>
    
  </dependencies>
View Code

 

2、項目構建配置web

項目構建常見的配置項主要是設置jdk版本和資源過濾。以下:redis

<build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-compiler-plugin</artifactId>
          <configuration>
            <source>1.8</source>
            <target>1.8</target>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-resources-plugin</artifactId>
          <configuration>
            <resources>
              <resource>
                <directory>${project.basedir}/src/main/resources</directory>
                <filtering>true</filtering>
              </resource>
            </resources>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.eclipse.jetty</groupId>
          <artifactId>jetty-maven-plugin</artifactId>
          <version>${version.jetty}</version>
          <configuration>
            <httpConnector>
              <port>8003</port>
            </httpConnector>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>
    
    <finalName>v1</finalName>
  </build>
View Code

其中finaleName表示 webapp 打包後的名字,做爲默認的 web 項目,設置爲 ROOT 能夠直接在 tomcat 中使用。spring

 

3、屬性配置sql

<profiles>
    <profile>
          <id>dev</id>
          <activation>
              <activeByDefault>true</activeByDefault>
          </activation>
          <properties>
            <config.logger.level>INFO</config.logger.level>
            <config.redis.server>127.0.0.1</config.redis.server>
            <config.redis.port>6379</config.redis.port>
            <config.redis.prefixKey>local_</config.redis.prefixKey>
            <config.db.driverClassName>com.mysql.jdbc.Driver</config.db.driverClassName>
            <config.db.url>jdbc:mysql://localhost:3306/dbname?characterEncoding=utf8&amp;useUnicode=true&amp;useSSL=false</config.db.url>
            <config.db.username>root</config.db.username>
            <config.db.password>123456</config.db.password>
            <config.domain>http://localhost:8002</config.domain>
          </properties>
      </profile>
      <profile>
          <id>prod</id>
          <properties>
            <config.logger.level>INFO</config.logger.level>
            <config.redis.server>127.0.0.1</config.redis.server>
            <config.redis.port>6382</config.redis.port>
            <config.redis.prefixKey>prod_</config.redis.prefixKey>
            <config.db.driverClassName>com.mysql.jdbc.Driver</config.db.driverClassName>
            <config.db.url>jdbc:mysql://localhost:3306/dbname?characterEncoding=utf8&amp;useUnicode=true&amp;useSSL=false</config.db.url>
            <config.db.username>username</config.db.username>
            <config.db.password>pwd</config.db.password>
            <config.domain>http://domain</config.domain>
          </properties>
      </profile>
  </profiles>
View Code

 

在常規開發中,一個常見問題是在本地開發、測試、生產等幾個環境中來回切換須要手工修改各項配置,而 maven 的屬性配置則很好的解決了這個問題。當項目構建配置中使用了maven-resources-plugin插件時,在測試或者打包時,會自動將屬性中配置的值替換到maven-resources-plugin所指定的資源目錄中。數據庫

須要注意的是,其中的數據庫配置要用&amp;作轉義;而該項直接在 xml 文件中配置則不須要轉義。apache

這裏默認激活的是activeByDefault所在的配置節,在打包或者測試時激活其餘配置須要加參數P 來指定激活的配置項:-Pprod api

 

4、web 版本配置tomcat

因爲 maven 的 archvetype 略微陳舊,建立的 webapp 會被設置爲2.3版本,能夠在配置文件中修改成2.5。配置文件是web 項目.setting 目錄中的org.eclipse.wst.common.project.facet.core.xml 文件,將

<installed facet="jst.web" version="2.3"/>

 

修改成:

<installed facet="jst.web" version="2.5"/>

 

5、其他配置

其他諸如spring、web.xml 等配置信息。

相關文章
相關標籤/搜索