Maven學習筆記-1
阿新 • • 發佈:2019-01-06
1.優勢
- 約定優於配置
- 簡單
- 測試支援
- 構建簡單
- 外掛豐富
下載
- http://maven.apache.org/index.html
maven 根配置
apache-maven-3.5.4-bin\apache-maven-3.5.4\lib\maven-model-builder-3.5.4.jar
解壓jar包
org\apache\maven\model\pom-4.0.0.xml
Maven基礎配置
- windows : 在path下面配置maven解壓路徑
- Linux .bash_profile 配置
Maven 最主要的配置檔案
settings.xml
載入順序 ~/.m2/setting.xml > conf/setting.xml
Setting.xml 標籤說明
localRepository
jar倉庫存放地址
interactiveMode
<!--Maven是否需要和使用者互動以獲得輸入。如果Maven需要和使用者互動以獲得輸入,則設定成true,反之則應為false。預設為true。--> <interactiveMode>true</interactiveMode>
offline
<!-- offline | Determines whether maven should attempt to connect to the network when executing a build. | This will have an effect on artifact downloads, artifact deployment, and others. | | Default: false <offline>false</offline>-->
<!--表示Maven是否需要在離線模式下執行。如果構建系統需要在離線模式下執行,則為true,預設為false。當由於網路設定原因或者安全因素,構建伺服器不能連線遠端倉庫的時候,該配置就十分有用。 -->
pluginGroups
<!--當外掛的組織Id(groupId)沒有顯式提供時,供搜尋外掛組織Id(groupId)的列表。該元素包含一個pluginGroup元素列表,每個子元素包含了一個組織Id(groupId)。當我們使用某個外掛,
並且沒有在命令列為其提供組織Id(groupId)的時候,Maven就會使用該列表。預設情況下該列表包含了org.apache.maven.plugins和org.codehaus.mojo -->
<!-- pluginGroups | This is a list of additional group identifiers that will be searched when resolving plugins by their prefix, i.e. | when invoking a command line like "mvn prefix:goal". Maven will automatically add the group identifiers | "org.apache.maven.plugins" and "org.codehaus.mojo" if these are not already contained in the list. |--> <pluginGroups> <!-- pluginGroup | Specifies a further group identifier to use for plugin lookup. <pluginGroup>com.your.plugins</pluginGroup> --> </pluginGroups>
更多的參考 https://blog.csdn.net/u013782203/article/details/51898885
jdk1.8 配置
<profiles> <profile> <id>jdk-1.8</id> <activation> <activeByDefault>true</activeByDefault> <jdk>1.8</jdk> </activation> <properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> <maven.compiler.compiler>1.8</maven.compiler.compiler> </properties> </profile> </profiles>
pom.xml
<groupId>com.gupao</groupId> 組織 <artifactId>maven-project</artifactId> 專案名稱 <version>1.0-SNAPSHOT</version> 版本號
<packaging>jar</packaging> 打包方式 預設 jar 支援 jar war pom
dependencyManagement jar包管理器 只能出現在父類pom 可以幫助統一專案版本號 不會下載jar 當子專案需要的時候 下載jar
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>5.1.2.RELEASE</version>
<scope>compile</scope> 五種 compile test provided runtime system
<type>jar</type>
</dependency>
type:相應的依賴產品包形式,如jar,war
scope:用於限制相應的依賴範圍,包括以下的幾種變數:
compile :預設範圍,用於編譯
provided:類似於編譯,但支援你期待jdk或者容器提供,類似於classpath
runtime:在執行時,需要使用
test:用於test任務時使用
system:需要外在提供相應得元素。通過systemPath來取得
systemPath: 僅用於範圍為system。提供相應的路徑
optional: 標註可選,當專案自身也是依賴時。用於連續依賴時使用
依賴傳遞
|
compile |
test |
provided |
runtime |
compile |
compile |
- |
- |
runtime |
test |
test |
- |
- |
test |
provided |
provided |
- |
provided |
provided |
runtime |
runtime |
- |
- |
runtime |
依賴仲裁
- 最短路徑
- 載入先後選擇 如果先載入 就使用 後面的不會覆蓋
- 排除包
<exclusions> <exclusion> <artifactId>commons-beanutils</artifactId> <groupId>commons-beanutils</groupId> </exclusion> </exclusions>
生命週期