主頁 > 後端開發 > maven配置總結

maven配置總結

2020-10-17 10:00:06 後端開發

<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.0http://maven.apache.org/maven-v4_0_0.xsd">
    <!--父專案的坐標,如果專案中沒有規定某個元素的值,那么父專案中的對應值即為專案的默認值, 坐標包括group ID,artifact ID和 
        version, -->
    <parent>
        <!--被繼承的父專案的構件識別符號 -->
        <artifactId />
        <!--被繼承的父專案的全球唯一識別符號 -->
        <groupId />
        <!--被繼承的父專案的版本 -->
        <version />
        <!-- 父專案的pom.xml檔案的相對路徑,相對路徑允許你選擇一個不同的路徑,默認值是../pom.xml,Maven首先在構建當前專案的地方尋找父項 
            目的pom,其次在檔案系統的這個位置(relativePath位置),然后在本地倉庫,最后在遠程倉庫尋找父專案的pom, -->
        <relativePath />
    </parent>
    <!--宣告專案描述符遵循哪一個POM模型版本,模型本身的版本很少改變,雖然如此,但它仍然是必不可少的,這是為了當Maven引入了新的特性或者其他模型變更的時候,確保穩定性, -->
    <modelVersion>4.0.0</modelVersion>
    <!--專案的全球唯一識別符號,通常使用全限定的包名區分該專案和其他專案,并且構建時生成的路徑也是由此生成, 如com.mycompany.app生成的相對路徑為:/com/mycompany/app -->
    <groupId>asia.banseon</groupId>
    <!-- 構件的識別符號,它和group ID一起唯一標識一個構件,換句話說,你不能有兩個不同的專案擁有同樣的artifact ID和groupID;在某個 
        特定的group ID下,artifact ID也必須是唯一的,構件是專案產生的或使用的一個東西,Maven為專案產生的構件包括:JARs,源 碼,二進制發布和WARs等, -->
    <artifactId>banseon-maven2</artifactId>
    <!--專案產生的構件型別,例如jar、war、ear、pom,插件可以創建他們自己的構件型別,所以前面列的不是全部構件型別 -->
    <packaging>jar</packaging>
    <!--專案當前版本,格式為:主版本.次版本.增量版本-限定版本號 -->
    <version>1.0-SNAPSHOT</version>
    <!--專案的名稱, Maven產生的檔案用 -->
    <name>banseon-maven</name>
    <!--專案主頁的URL, Maven產生的檔案用 -->
    <url>http://www.baidu.com/banseon</url>
    <!-- 專案的詳細描述, Maven 產生的檔案用, 當這個元素能夠用HTML格式描述時(例如,CDATA中的文本會被決議器忽略,就可以包含HTML標 
        簽), 不鼓勵使用純文本描述,如果你需要修改產生的web站點的索引頁面,你應該修改你自己的索引頁檔案,而不是調整這里的檔案, -->
    <description>A maven project to study maven.</description>
    <!--描述了這個專案構建環境中的前提條件, -->
    <prerequisites>
        <!--構建該專案或使用該插件所需要的Maven的最低版本 -->
        <maven />
    </prerequisites>
    <!--專案的問題管理系統(Bugzilla, Jira, Scarab,或任何你喜歡的問題管理系統)的名稱和URL,本例為 jira -->
    <issueManagement>
        <!--問題管理系統(例如jira)的名字, -->
        <system>jira</system>
        <!--該專案使用的問題管理系統的URL -->
        <url>http://jira.baidu.com/banseon</url>
    </issueManagement>
    <!--專案持續集成資訊 -->
    <ciManagement>
        <!--持續集成系統的名字,例如continuum -->
        <system />
        <!--該專案使用的持續集成系統的URL(如果持續集成系統有web介面的話), -->
        <url />
        <!--構建完成時,需要通知的開發者/用戶的配置項,包括被通知者資訊和通知條件(錯誤,失敗,成功,警告) -->
        <notifiers>
            <!--配置一種方式,當構建中斷時,以該方式通知用戶/開發者 -->
            <notifier>
                <!--傳送通知的途徑 -->
                <type />
                <!--發生錯誤時是否通知 -->
                <sendOnError />
                <!--構建失敗時是否通知 -->
                <sendOnFailure />
                <!--構建成功時是否通知 -->
                <sendOnSuccess />
                <!--發生警告時是否通知 -->
                <sendOnWarning />
                <!--不贊成使用,通知發送到哪里 -->
                <address />
                <!--擴展配置項 -->
                <configuration />
            </notifier>
        </notifiers>
    </ciManagement>
    <!--專案創建年份,4位數字,當產生著作權資訊時需要使用這個值, -->
    <inceptionYear />
    <!--專案相關郵件串列資訊 -->
    <mailingLists>
        <!--該元素描述了專案相關的所有郵件串列,自動產生的網站參考這些資訊, -->
        <mailingList>
            <!--郵件的名稱 -->
            <name>Demo</name>
            <!--發送郵件的地址或鏈接,如果是郵件地址,創建檔案時,mailto: 鏈接會被自動創建 -->
            <post>[email protected]</post>
            <!--訂閱郵件的地址或鏈接,如果是郵件地址,創建檔案時,mailto: 鏈接會被自動創建 -->
            <subscribe>[email protected]</subscribe>
            <!--取消訂閱郵件的地址或鏈接,如果是郵件地址,創建檔案時,mailto: 鏈接會被自動創建 -->
            <unsubscribe>[email protected]</unsubscribe>
            <!--你可以瀏覽郵件資訊的URL -->
            <archive>http:/hi.baidu.com/banseon/demo/dev/</archive>
        </mailingList>
    </mailingLists>
    <!--專案開發者串列 -->
    <developers>
        <!--某個專案開發者的資訊 -->
        <developer>
            <!--SCM里專案開發者的唯一識別符號 -->
            <id>HELLO WORLD</id>
            <!--專案開發者的全名 -->
            <name>banseon</name>
            <!--專案開發者的email -->
            <email>[email protected]</email>
            <!--專案開發者的主頁的URL -->
            <url />
            <!--專案開發者在專案中扮演的角色,角色元素描述了各種角色 -->
            <roles>
                <role>Project Manager</role>
                <role>Architect</role>
            </roles>
            <!--專案開發者所屬組織 -->
            <organization>demo</organization>
            <!--專案開發者所屬組織的URL -->
            <organizationUrl>http://hi.baidu.com/banseon</organizationUrl>
            <!--專案開發者屬性,如即時訊息如何處理等 -->
            <properties>
                <dept>No</dept>
            </properties>
            <!--專案開發者所在時區, -11到12范圍內的整數, -->
            <timezone>-5</timezone>
        </developer>
    </developers>
    <!--專案的其他貢獻者串列 -->
    <contributors>
        <!--專案的其他貢獻者,參見developers/developer元素 -->
        <contributor>
            <name />
            <email />
            <url />
            <organization />
            <organizationUrl />
            <roles />
            <timezone />
            <properties />
        </contributor>
    </contributors>
    <!--該元素描述了專案所有License串列, 應該只列出該專案的license串列,不要列出依賴專案的 license串列,如果列出多個license,用戶可以選擇它們中的一個而不是接受所有license, -->
    <licenses>
        <!--描述了專案的license,用于生成專案的web站點的license頁面,其他一些報表和validation也會用到該元素, -->
        <license>
            <!--license用于法律上的名稱 -->
            <name>Apache 2</name>
            <!--官方的license正文頁面的URL -->
            <url>http://www.baidu.com/banseon/LICENSE-2.0.txt</url>
            <!--專案分發的主要方式: repo,可以從Maven庫下載 manual, 用戶必須手動下載和安裝依賴 -->
            <distribution>repo</distribution>
            <!--關于license的補充資訊 -->
            <comments>A business-friendly OSS license</comments>
        </license>
    </licenses>
    <!--SCM(Source Control Management)標簽允許你配置你的代碼庫,供Maven web站點和其它插件使用, -->
    <scm>
        <!--SCM的URL,該URL描述了版本庫和如何連接到版本庫,欲知詳情,請看SCMs提供的URL格式和串列,該連接只讀, -->
        <connection>
            scm:svn:http://svn.baidu.com/banseon/maven/banseon/banseon-maven2-trunk(dao-trunk)
        </connection>
        <!--給開發者使用的,類似connection元素,即該連接不僅僅只讀 -->
        <developerConnection>
            scm:svn:http://svn.baidu.com/banseon/maven/banseon/dao-trunk
        </developerConnection>
        <!--當前代碼的標簽,在開發階段默認為HEAD -->
        <tag />
        <!--指向專案的可瀏覽SCM庫(例如ViewVC或者Fisheye)的URL, -->
        <url>http://svn.baidu.com/banseon</url>
    </scm>
    <!--描述專案所屬組織的各種屬性,Maven產生的檔案用 -->
    <organization>
        <!--組織的全名 -->
        <name>demo</name>
        <!--組織主頁的URL -->
        <url>http://www.baidu.com/banseon</url>
    </organization>
    <!--構建專案需要的資訊 -->
    <build>
        <!--該元素設定了專案原始碼目錄,當構建專案的時候,構建系統會編譯目錄里的原始碼,該路徑是相對于pom.xml的相對路徑, -->
        <sourceDirectory />
        <!--該元素設定了專案腳本原始碼目錄,該目錄和原始碼目錄不同:絕大多數情況下,該目錄下的內容 會被拷貝到輸出目錄(因為腳本是被解釋的,而不是被編譯的), -->
        <scriptSourceDirectory />
        <!--該元素設定了專案單元測驗使用的原始碼目錄,當測驗專案的時候,構建系統會編譯目錄里的原始碼,該路徑是相對于pom.xml的相對路徑, -->
        <testSourceDirectory />
        <!--被編譯過的應用程式class檔案存放的目錄, -->
        <outputDirectory />
        <!--被編譯過的測驗class檔案存放的目錄, -->
        <testOutputDirectory />
        <!--使用來自該專案的一系列構建擴展 -->
        <extensions>
            <!--描述使用到的構建擴展, -->
            <extension>
                <!--構建擴展的groupId -->
                <groupId />
                <!--構建擴展的artifactId -->
                <artifactId />
                <!--構建擴展的版本 -->
                <version />
            </extension>
        </extensions>
        <!--當專案沒有規定目標(Maven2 叫做階段)時的默認值 -->
        <defaultGoal />
        <!--這個元素描述了專案相關的所有資源路徑串列,例如和專案相關的屬性檔案,這些資源被包含在最終的打包檔案里, -->
        <resources>
            <!--這個元素描述了專案相關或測驗相關的所有資源路徑 -->
            <resource>
                <!-- 描述了資源的目標路徑,該路徑相對target/classes目錄(例如${project.build.outputDirectory}),舉個例 
                    子,如果你想資源在特定的包里(org.apache.maven.messages),你就必須該元素設定為org/apache/maven /messages,然而,如果你只是想把資源放到原始碼目錄結構里,就不需要該配置, -->
                <targetPath />
                <!--是否使用引數值代替引數名,引數值取自properties元素或者檔案里配置的屬性,檔案在filters元素里列出, -->
                <filtering />
                <!--描述存放資源的目錄,該路徑相對POM路徑 -->
                <directory />
                <!--包含的模式串列,例如**/*.xml. -->
                <includes />
                <!--排除的模式串列,例如**/*.xml -->
                <excludes />
            </resource>
        </resources>
        <!--這個元素描述了單元測驗相關的所有資源路徑,例如和單元測驗相關的屬性檔案, -->
        <testResources>
            <!--這個元素描述了測驗相關的所有資源路徑,參見build/resources/resource元素的說明 -->
            <testResource>
                <targetPath />
                <filtering />
                <directory />
                <includes />
                <excludes />
            </testResource>
        </testResources>
        <!--構建產生的所有檔案存放的目錄 -->
        <directory />
        <!--產生的構件的檔案名,默認值是${artifactId}-${version}, -->
        <finalName />
        <!--當filtering開關打開時,使用到的過濾器屬性檔案串列 -->
        <filters />
        <!--子專案可以參考的默認插件資訊,該插件配置項直到被參考時才會被決議或系結到生命周期,給定插件的任何本地配置都會覆寫這里的配置 -->
        <pluginManagement>
            <!--使用的插件串列 , -->
            <plugins>
                <!--plugin元素包含描述插件所需要的資訊, -->
                <plugin>
                    <!--插件在倉庫里的group ID -->
                    <groupId />
                    <!--插件在倉庫里的artifact ID -->
                    <artifactId />
                    <!--被使用的插件的版本(或版本范圍) -->
                    <version />
                    <!--是否從該插件下載Maven擴展(例如打包和型別處理器),由于性能原因,只有在真需要下載時,該元素才被設定成enabled, -->
                    <extensions />
                    <!--在構建生命周期中執行一組目標的配置,每個目標可能有不同的配置, -->
                    <executions>
                        <!--execution元素包含了插件執行需要的資訊 -->
                        <execution>
                            <!--執行目標的識別符號,用于標識構建程序中的目標,或者匹配繼承程序中需要合并的執行目標 -->
                            <id />
                            <!--系結了目標的構建生命周期階段,如果省略,目標會被系結到源資料里配置的默認階段 -->
                            <phase />
                            <!--配置的執行目標 -->
                            <goals />
                            <!--配置是否被傳播到子POM -->
                            <inherited />
                            <!--作為DOM物件的配置 -->
                            <configuration />
                        </execution>
                    </executions>
                    <!--專案引入插件所需要的額外依賴 -->
                    <dependencies>
                        <!--參見dependencies/dependency元素 -->
                        <dependency>
                            ......
                        </dependency>
                    </dependencies>
                    <!--任何配置是否被傳播到子專案 -->
                    <inherited />
                    <!--作為DOM物件的配置 -->
                    <configuration />
                </plugin>
            </plugins>
        </pluginManagement>
        <!--使用的插件串列 -->
        <plugins>
            <!--參見build/pluginManagement/plugins/plugin元素 -->
            <plugin>
                <groupId />
                <artifactId />
                <version />
                <extensions />
                <executions>
                    <execution>
                        <id />
                        <phase />
                        <goals />
                        <inherited />
                        <configuration />
                    </execution>
                </executions>
                <dependencies>
                    <!--參見dependencies/dependency元素 -->
                    <dependency>
                        ......
                    </dependency>
                </dependencies>
                <goals />
                <inherited />
                <configuration />
            </plugin>
        </plugins>
    </build>
    <!--在列的專案構建profile,如果被激活,會修改構建處理 -->
    <profiles>
        <!--根據環境引數或命令列引數激活某個構建處理 -->
        <profile>
            <!--構建配置的唯一識別符號,即用于命令列激活,也用于在繼承時合并具有相同識別符號的profile, -->
            <id />
            <!--自動觸發profile的條件邏輯,Activation是profile的開啟鑰匙,profile的力量來自于它 能夠在某些特定的環境中自動使用某些特定的值;這些環境通過activation元素指定,activation元素并不是激活profile的唯一方式, -->
            <activation>
                <!--profile默認是否激活的標志 -->
                <activeByDefault />
                <!--當匹配的jdk被檢測到,profile被激活,例如,1.4激活JDK1.4,1.4.0_2,而!1.4激活所有版本不是以1.4開頭的JDK, -->
                <jdk />
                <!--當匹配的作業系統屬性被檢測到,profile被激活,os元素可以定義一些作業系統相關的屬性, -->
                <os>
                    <!--激活profile的作業系統的名字 -->
                    <name>Windows XP</name>
                    <!--激活profile的作業系統所屬家族(如 'windows') -->
                    <family>Windows</family>
                    <!--激活profile的作業系統體系結構 -->
                    <arch>x86</arch>
                    <!--激活profile的作業系統版本 -->
                    <version>5.1.2600</version>
                </os>
                <!--如果Maven檢測到某一個屬性(其值可以在POM中通過${名稱}參考),其擁有對應的名稱和值,Profile就會被激活,如果值 欄位是空的,那么存在屬性名稱欄位就會激活profile,否則按區分大小寫方式匹配屬性值欄位 -->
                <property>
                    <!--激活profile的屬性的名稱 -->
                    <name>mavenVersion</name>
                    <!--激活profile的屬性的值 -->
                    <value>2.0.3</value>
                </property>
                <!--提供一個檔案名,通過檢測該檔案的存在或不存在來激活profile,missing檢查檔案是否存在,如果不存在則激活 profile,另一方面,exists則會檢查檔案是否存在,如果存在則激活profile, -->
                <file>
                    <!--如果指定的檔案存在,則激活profile, -->
                    <exists>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
                    </exists>
                    <!--如果指定的檔案不存在,則激活profile, -->
                    <missing>/usr/local/hudson/hudson-home/jobs/maven-guide-zh-to-production/workspace/
                    </missing>
                </file>
            </activation>
            <!--構建專案所需要的資訊,參見build元素 -->
            <build>
                <defaultGoal />
                <resources>
                    <resource>
                        <targetPath />
                        <filtering />
                        <directory />
                        <includes />
                        <excludes />
                    </resource>
                </resources>
                <testResources>
                    <testResource>
                        <targetPath />
                        <filtering />
                        <directory />
                        <includes />
                        <excludes />
                    </testResource>
                </testResources>
                <directory />
                <finalName />
                <filters />
                <pluginManagement>
                    <plugins>
                        <!--參見build/pluginManagement/plugins/plugin元素 -->
                        <plugin>
                            <groupId />
                            <artifactId />
                            <version />
                            <extensions />
                            <executions>
                                <execution>
                                    <id />
                                    <phase />
                                    <goals />
                                    <inherited />
                                    <configuration />
                                </execution>
                            </executions>
                            <dependencies>
                                <!--參見dependencies/dependency元素 -->
                                <dependency>
                                    ......
                                </dependency>
                            </dependencies>
                            <goals />
                            <inherited />
                            <configuration />
                        </plugin>
                    </plugins>
                </pluginManagement>
                <plugins>
                    <!--參見build/pluginManagement/plugins/plugin元素 -->
                    <plugin>
                        <groupId />
                        <artifactId />
                        <version />
                        <extensions />
                        <executions>
                            <execution>
                                <id />
                                <phase />
                                <goals />
                                <inherited />
                                <configuration />
                            </execution>
                        </executions>
                        <dependencies>
                            <!--參見dependencies/dependency元素 -->
                            <dependency>
                                ......
                            </dependency>
                        </dependencies>
                        <goals />
                        <inherited />
                        <configuration />
                    </plugin>
                </plugins>
            </build>
            <!--模塊(有時稱作子專案) 被構建成專案的一部分,列出的每個模塊元素是指向該模塊的目錄的相對路徑 -->
            <modules />
            <!--發現依賴和擴展的遠程倉庫串列, -->
            <repositories>
                <!--參見repositories/repository元素 -->
                <repository>
                    <releases>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </releases>
                    <snapshots>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </snapshots>
                    <id />
                    <name />
                    <url />
                    <layout />
                </repository>
            </repositories>
            <!--發現插件的遠程倉庫串列,這些插件用于構建和報表 -->
            <pluginRepositories>
                <!--包含需要連接到遠程插件倉庫的資訊.參見repositories/repository元素 -->
                <pluginRepository>
                    <releases>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </releases>
                    <snapshots>
                        <enabled />
                        <updatePolicy />
                        <checksumPolicy />
                    </snapshots>
                    <id />
                    <name />
                    <url />
                    <layout />
                </pluginRepository>
            </pluginRepositories>
            <!--該元素描述了專案相關的所有依賴, 這些依賴組成了專案構建程序中的一個個環節,它們自動從專案定義的倉庫中下載,要獲取更多資訊,請看專案依賴機制, -->
            <dependencies>
                <!--參見dependencies/dependency元素 -->
                <dependency>
                    ......
                </dependency>
            </dependencies>
            <!--不贊成使用. 現在Maven忽略該元素. -->
            <reports />
            <!--該元素包括使用報表插件產生報表的規范,當用戶執行"mvn site",這些報表就會運行, 在頁面導航欄能看到所有報表的鏈接,參見reporting元素 -->
            <reporting>
                ......
            </reporting>
            <!--參見dependencyManagement元素 -->
            <dependencyManagement>
                <dependencies>
                    <!--參見dependencies/dependency元素 -->
                    <dependency>
                        ......
                    </dependency>
                </dependencies>
            </dependencyManagement>
            <!--參見distributionManagement元素 -->
            <distributionManagement>
                ......
            </distributionManagement>
            <!--參見properties元素 -->
            <properties />
        </profile>
    </profiles>
    <!--模塊(有時稱作子專案) 被構建成專案的一部分,列出的每個模塊元素是指向該模塊的目錄的相對路徑 -->
    <modules />
    <!--發現依賴和擴展的遠程倉庫串列, -->
    <repositories>
        <!--包含需要連接到遠程倉庫的資訊 -->
        <repository>
            <!--如何處理遠程倉庫里發布版本的下載 -->
            <releases>
                <!--true或者false表示該倉庫是否為下載某種型別構件(發布版,快照版)開啟, -->
                <enabled />
                <!--該元素指定更新發生的頻率,Maven會比較本地POM和遠程POM的時間戳,這里的選項是:always(一直),daily(默認,每日),interval:X(這里X是以分鐘為單位的時間間隔),或者never(從不), -->
                <updatePolicy />
                <!--當Maven驗證構件校驗檔案失敗時該怎么做:ignore(忽略),fail(失敗),或者warn(警告), -->
                <checksumPolicy />
            </releases>
            <!-- 如何處理遠程倉庫里快照版本的下載,有了releases和snapshots這兩組配置,POM就可以在每個單獨的倉庫中,為每種型別的構件采取不同的 
                策略,例如,可能有人會決定只為開發目的開啟對快照版本下載的支持,參見repositories/repository/releases元素 -->
            <snapshots>
                <enabled />
                <updatePolicy />
                <checksumPolicy />
            </snapshots>
            <!--遠程倉庫唯一識別符號,可以用來匹配在settings.xml檔案里配置的遠程倉庫 -->
            <id>banseon-repository-proxy</id>
            <!--遠程倉庫名稱 -->
            <name>banseon-repository-proxy</name>
            <!--遠程倉庫URL,按protocol://hostname/path形式 -->
            <url>http://192.168.1.169:9999/repository/</url>
            <!-- 用于定位和排序構件的倉庫布局型別-可以是default(默認)或者legacy(遺留),Maven 2為其倉庫提供了一個默認的布局;然 
                而,Maven 1.x有一種不同的布局,我們可以使用該元素指定布局是default(默認)還是legacy(遺留), -->
            <layout>default</layout>
        </repository>
    </repositories>
    <!--發現插件的遠程倉庫串列,這些插件用于構建和報表 -->
    <pluginRepositories>
        <!--包含需要連接到遠程插件倉庫的資訊.參見repositories/repository元素 -->
        <pluginRepository>
            ......
        </pluginRepository>
    </pluginRepositories>
 
 
    <!--該元素描述了專案相關的所有依賴, 這些依賴組成了專案構建程序中的一個個環節,它們自動從專案定義的倉庫中下載,要獲取更多資訊,請看專案依賴機制, -->
    <dependencies>
        <dependency>
            <!--依賴的group ID -->
            <groupId>org.apache.maven</groupId>
            <!--依賴的artifact ID -->
            <artifactId>maven-artifact</artifactId>
            <!--依賴的版本號, 在Maven 2里, 也可以配置成版本號的范圍, -->
            <version>3.8.1</version>
            <!-- 依賴型別,默認型別是jar,它通常表示依賴的檔案的擴展名,但也有例外,一個型別可以被映射成另外一個擴展名或分類器,型別經常和使用的打包方式對應, 
                盡管這也有例外,一些型別的例子:jar,war,ejb-client和test-jar,如果設定extensions為 true,就可以在 plugin里定義新的型別,所以前面的型別的例子不完整, -->
            <type>jar</type>
            <!-- 依賴的分類器,分類器可以區分屬于同一個POM,但不同構建方式的構件,分類器名被附加到檔案名的版本號后面,例如,如果你想要構建兩個單獨的構件成 
                JAR,一個使用Java 1.4編譯器,另一個使用Java 6編譯器,你就可以使用分類器來生成兩個單獨的JAR構件, -->
            <classifier></classifier>
            <!--依賴范圍,在專案發布程序中,幫助決定哪些構件被包括進來,欲知詳情請參考依賴機制, - compile :默認范圍,用于編譯 - provided:類似于編譯,但支持你期待jdk或者容器提供,類似于classpath 
                - runtime: 在執行時需要使用 - test: 用于test任務時使用 - system: 需要外在提供相應的元素,通過systemPath來取得 
                - systemPath: 僅用于范圍為system,提供相應的路徑 - optional: 當專案自身被依賴時,標注依賴是否傳遞,用于連續依賴時使用 -->
            <scope>test</scope>
            <!--僅供system范圍使用,注意,不鼓勵使用這個元素,并且在新的版本中該元素可能被覆寫掉,該元素為依賴規定了檔案系統上的路徑,需要絕對路徑而不是相對路徑,推薦使用屬性匹配絕對路徑,例如${java.home}, -->
            <systemPath></systemPath>
            <!--當計算傳遞依賴時, 從依賴構件串列里,列出被排除的依賴構件集,即告訴maven你只依賴指定的專案,不依賴專案的依賴,此元素主要用于解決版本沖突問題 -->
            <exclusions>
                <exclusion>
                    <artifactId>spring-core</artifactId>
                    <groupId>org.springframework</groupId>
                </exclusion>
            </exclusions>
            <!--可選依賴,如果你在專案B中把C依賴宣告為可選,你就需要在依賴于B的專案(例如專案A)中顯式的參考對C的依賴,可選依賴阻斷依賴的傳遞性, -->
            <optional>true</optional>
        </dependency>
    </dependencies>
    <!--不贊成使用. 現在Maven忽略該元素. -->
    <reports></reports>
    <!--該元素描述使用報表插件產生報表的規范,當用戶執行"mvn site",這些報表就會運行, 在頁面導航欄能看到所有報表的鏈接, -->
    <reporting>
        <!--true,則,網站不包括默認的報表,這包括"專案資訊"選單中的報表, -->
        <excludeDefaults />
        <!--所有產生的報表存放到哪里,默認值是${project.build.directory}/site, -->
        <outputDirectory />
        <!--使用的報表插件和他們的配置, -->
        <plugins>
            <!--plugin元素包含描述報表插件需要的資訊 -->
            <plugin>
                <!--報表插件在倉庫里的group ID -->
                <groupId />
                <!--報表插件在倉庫里的artifact ID -->
                <artifactId />
                <!--被使用的報表插件的版本(或版本范圍) -->
                <version />
                <!--任何配置是否被傳播到子專案 -->
                <inherited />
                <!--報表插件的配置 -->
                <configuration />
                <!--一組報表的多重規范,每個規范可能有不同的配置,一個規范(報表集)對應一個執行目標 ,例如,有1,2,3,4,5,6,7,8,9個報表,1,2,5構成A報表集,對應一個執行目標,2,5,8構成B報表集,對應另一個執行目標 -->
                <reportSets>
                    <!--表示報表的一個集合,以及產生該集合的配置 -->
                    <reportSet>
                        <!--報表集合的唯一識別符號,POM繼承時用到 -->
                        <id />
                        <!--產生報表集合時,被使用的報表的配置 -->
                        <configuration />
                        <!--配置是否被繼承到子POMs -->
                        <inherited />
                        <!--這個集合里使用到哪些報表 -->
                        <reports />
                    </reportSet>
                </reportSets>
            </plugin>
        </plugins>
    </reporting>
    <!-- 繼承自該專案的所有子專案的默認依賴資訊,這部分的依賴資訊不會被立即決議,而是當子專案宣告一個依賴(必須描述group ID和 artifact 
        ID資訊),如果group ID和artifact ID以外的一些資訊沒有描述,則通過group ID和artifact ID 匹配到這里的依賴,并使用這里的依賴資訊, -->
    <dependencyManagement>
        <dependencies>
            <!--參見dependencies/dependency元素 -->
            <dependency>
                ......
            </dependency>
        </dependencies>
    </dependencyManagement>
    <!--專案分發資訊,在執行mvn deploy后表示要發布的位置,有了這些資訊就可以把網站部署到遠程服務器或者把構件部署到遠程倉庫, -->
    <distributionManagement>
        <!--部署專案產生的構件到遠程倉庫需要的資訊 -->
        <repository>
            <!--是分配給快照一個唯一的版本號(由時間戳和構建流水號)?還是每次都使用相同的版本號?參見repositories/repository元素 -->
            <uniqueVersion />
            <id>banseon-maven2</id>
            <name>banseon maven2</name>
            <url>file://${basedir}/target/deploy</url>
            <layout />
        </repository>
        <!--構件的快照部署到哪里?如果沒有配置該元素,默認部署到repository元素配置的倉庫,參見distributionManagement/repository元素 -->
        <snapshotRepository>
            <uniqueVersion />
            <id>banseon-maven2</id>
            <name>Banseon-maven2 Snapshot Repository</name>
            <url>scp://svn.baidu.com/banseon:/usr/local/maven-snapshot</url>
            <layout />
        </snapshotRepository>
        <!--部署專案的網站需要的資訊 -->
        <site>
            <!--部署位置的唯一識別符號,用來匹配站點和settings.xml檔案里的配置 -->
            <id>banseon-site</id>
            <!--部署位置的名稱 -->
            <name>business api website</name>
            <!--部署位置的URL,按protocol://hostname/path形式 -->
            <url>
                scp://svn.baidu.com/banseon:/var/www/localhost/banseon-web
            </url>
        </site>
        <!--專案下載頁面的URL,如果沒有該元素,用戶應該參考主頁,使用該元素的原因是:幫助定位那些不在倉庫里的構件(由于license限制), -->
        <downloadUrl />
        <!--如果構件有了新的group ID和artifact ID(構件移到了新的位置),這里列出構件的重定位資訊, -->
        <relocation>
            <!--構件新的group ID -->
            <groupId />
            <!--構件新的artifact ID -->
            <artifactId />
            <!--構件新的版本號 -->
            <version />
            <!--顯示給用戶的,關于移動的額外資訊,例如原因, -->
            <message />
        </relocation>
        <!-- 給出該構件在遠程倉庫的狀態,不得在本地專案中設定該元素,因為這是工具自動更新的,有效的值有:none(默認),converted(倉庫管理員從 
            Maven 1 POM轉換過來),partner(直接從伙伴Maven 2倉庫同步過來),deployed(從Maven 2實體部 署),verified(被核實時正確的和最終的), -->
        <status />
    </distributionManagement>
    <!--以值替代名稱,Properties可以在整個POM中使用,也可以作為觸發條件(見settings.xml組態檔里activation元素的說明),格式是<name>value</name>, -->
    <properties />
</project>

 

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/175690.html

標籤:Java

上一篇:JVM系列.JVM記憶體模型

下一篇:(java)了解與學習使用C3P0

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more