首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Maven 企業級專案骨架:依賴管理與建置外掛最佳實踐範本

     編輯:Java 綜合教學

父 POM 核心配置解析

採用 packaging=pom 的父專案統一管理版本與建置規範,子模組繼承複用。核心區塊:

屬性集中定義版本號

<properties>
    <junit.version>4.12</junit.version>
    <spring.version>4.1.3.RELEASE</spring.version>
    <mybatis.version>3.2.8</mybatis.version>
    <mysql.version>5.1.32</mysql.version>
    <druid.version>1.0.9</druid.version> <!-- 阿里巴巴連接池 -->
    <jackson.version>2.4.2</jackson.version>
    <httpclient.version>4.3.5</httpclient.version>
    <jedis.version>2.7.2</jedis.version>
    <solrj.version>4.10.3</solrj.version>
    <!-- 更多版本屬性... -->
</properties>

dependencyManagement 統一依賴版本(不實際引入)

<dependencyManagement>
    <dependencies>
        <!-- Jackson JSON -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- Spring 全家桶 -->
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>${spring.version}</version>
        </dependency>
        <!-- MyBatis -->
        <dependency>
            <groupId>org.mybatis</groupId>
            <artifactId>mybatis</artifactId>
            <version>${mybatis.version}</version>
        </dependency>
        <!-- Druid 連接池 -->
        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>druid</artifactId>
            <version>${druid.version}</version>
        </dependency>
        <!-- 測試、日誌、工具庫等 -->
    </dependencies>
</dependencyManagement>

建置外掛標準化

<build>
    <plugins>
        <!-- 資源檔複製編碼 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-resources-plugin</artifactId>
            <version>2.7</version>
            <configuration><encoding>UTF-8</encoding></configuration>
        </plugin>
        <!-- Java 編譯版本 -->
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.2</version>
            <configuration>
                <source>1.7</source>
                <target>1.7</target>
                <encoding>UTF-8</encoding>
            </configuration>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>
            <!-- Tomcat 7 執行外掛(開發測試用) -->
            <plugin>
                <groupId>org.apache.tomcat.maven</groupId>
                <artifactId>tomcat7-maven-plugin</artifactId>
                <version>2.2</version>
            </plugin>
        </plugins>
    </pluginManagement>
</build>

子模組引用範例

<parent>
    <groupId>com.lee</groupId>
    <artifactId>lee-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</parent>

<dependencies>
    <!-- 無需指定版本,繼承自父 POM -->
    <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
    </dependency>
</dependencies>

最佳實踐要點

  • 版本號集中於 properties,升級僅改一處。
  • dependencyManagement 鎖定版本,子模組宣告 artifactId 即可,避免版本衝突。
  • 編碼統一 UTF-8,編譯目標版本與專案基線一致。
  • 外掛版本鎖定於 pluginManagement,子模組按需引用。
  • 範圍控制:provided(Servlet API 由容器提供)、test(JUnit 僅測試期)。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved