maven的標准pom.xml詳解


maven是構建和管理理項目的利器,pom.xml 是其核心。一個標准的pom.xml該怎么寫?其中的標簽又有什么意義?話不多說,請看代碼:

<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">

    <!--指定了當前pom模型的版本,必須這樣寫,不可更改-->
    <modelVersion>4.0.0</modelVersion>

    <!--坐標信息,並未固定要求,但約定俗成,模塊概念和idea有些類似,一個項目分為多個模塊-->
    <groupId>包名</groupId>
    <artifactId>實際項目名+模塊名</artifactId>

    <!--1表示大版本號,0表示小版本號,
    SNAPSHOT:快照,表示該版本正在開發中
    release:穩定版本
    beta:公測版,玩過游戲的都懂
    alpha:內部測試版
    GA:正式發布版-->
    <version>1.0-SNAPSHOT</version>

    <!--maven項目的打包方式,默認為jar,可供選擇的有war、zip、pom-->
    <packaging></packaging>

    <!--項目描述名-->
    <name></name>

    <!--項目地址-->
    <url></url>

    <!--項目描述-->
    <description></description>

    <!--開發人員的列表信息-->
    <developers>
        <developer></developer>
    </developers>

    <!--許可證信息-->
    <licenses></licenses>

    <!--組織信息-->
    <organization></organization>

    <!--依賴項信息,依賴到的jar包-->
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>${junit.version}</version>
            <type></type>

            <!--依賴的范圍,表示本依賴應用於項目中的哪些階段如下:
            compile:默認值。表示該依賴在編譯、測試、運行階段都有效
            provided:在編譯和測試時有效,在運行時不會被加入
            runtime:在測試和運行時有效
            test:在測試范圍內有效
            system:在編譯和測試時有效,與provided類似,不過要與本地系統相關聯,可移植性差
            import:在dependenceManagement中使用,表示導入別的項目的依賴到本項目中,關於本條請參看文末引用的別人的博客-->
            <scope>test</scope>

            <!--設置依賴是否可選,取值為true或false,默認是false,如果是false,則子項目必然繼承父項目的依賴(不可選)
            若為true,則子項目可以自己選擇是否需要父項目的依賴,若需要就手動引入,若不需要就不引入-->
            <optional>true</optional>

            <!--排除依賴列表,如果a依賴b,b依賴c,那么默認的a依賴c,但是我a就是不想依賴c,則可以在這里排除掉c-->
            <exclusions>
                <exclusion></exclusion>
            </exclusions>
        </dependency>
    </dependencies>

    <!--一般為了統一管理多個項目,讓他們的依賴都具有相同的版本,在所有子模塊中的依賴標簽都不指定明確的版本號,
    maven會自動向其父級查找,直到找到一個父模塊擁有dependencyManagement標簽,指定了所有依賴的版本號。
    這就保證所有模塊的依賴版本都來自於同一個父模塊的dependencyManagement指定。-->
    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId></groupId>
                <artifactId></artifactId>
                <version></version>
            </dependency>
        </dependencies>
    </dependencyManagement>


    <!--對構建項目的支持-->
    <build>

        <!--插件-->
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-source-plugin</artifactId>
                <version>2.4</version>

                <!--表示該插件在什么時候執行-->
                <executions>
                    <execution>

                        <!--表示在打包階段之后執行本插件-->
                        <phase>package</phase>

                        <!--執行方式,一般是與java的啟動參數類似,例如:run等-->
                        <goals>
                            <goal>jar-no-fork</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

    <!--用來指定繼承的父模塊-->
    <parent></parent>

    <!--多模塊共同管理,一起編譯-->
    <modules>
        <module>A</module>
        <module>B</module>
        <module>C</module>
    </modules>

    <!--屬性,可以指定變量,在其他地方用${junit.version}來代替4.10,如下所示-->
    <properties>
        <junit.version>4.10</junit.version>
    </properties>

</project>

 

scope為import的講解:

https://blog.csdn.net/ruanhao1203/article/details/79214867

http://www.cnblogs.com/huahua035/p/7680607.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM