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