Maven學習
Maven依賴範圍
compile 編譯依賴範圍.Maven預設的依賴範圍.編譯,測試,執行均需要
test 僅僅針對測試的classpath有效.比如JUnit.
provided編譯,測試有效.但在執行時無效.比如 servlet-api.jar.他執行時由中介軟體提供.
runtime 執行時依賴範圍.針對測試和執行classpath有效,但是在編譯主程式碼時無效.比如JDBC驅動實現.
system 系統依賴範圍.指定本地路徑.
依賴排除
依賴歸類
依賴最佳化
mvn dependency:list
聚合繼承
主要消除各個模組間重複的引用
父類
子類繼承
參考:
compile 編譯依賴範圍.Maven預設的依賴範圍.編譯,測試,執行均需要
test 僅僅針對測試的classpath有效.比如JUnit.
provided編譯,測試有效.但在執行時無效.比如 servlet-api.jar.他執行時由中介軟體提供.
runtime 執行時依賴範圍.針對測試和執行classpath有效,但是在編譯主程式碼時無效.比如JDBC驅動實現.
system 系統依賴範圍.指定本地路徑.
依賴排除
- <dependency>
- <groupId>com.gc.user</groupId>
- <artifactId>user-core</artifactId>
- <version>0.0.1-SNAPSHOT</version>
- <exclusions>
- <!-- 排除user-core模組中關於log4j的依賴 -->
- <exclusion>
- <groupId>log4j</groupId>
- <artifactId>log4j</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
依賴歸類
- <dependencies>
- <dependency>
- <groupId>org.spring.framework</groupId>
- <artifactId>spring-core</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.spring.framework</groupId>
- <artifactId>spring-beans</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.spring.framework</groupId>
- <artifactId>spring-web</artifactId>
- <version>${spring.version}</version>
- </dependency>
- <dependency>
- <groupId>org.spring.framework</groupId>
- <artifactId>spring-mock</artifactId>
- <version>${spring.version}</version>
- </dependency>
- </dependencies>
- <properties>
- <spring.version>2.5</spring.version>
- </properties>
依賴最佳化
mvn dependency:list
mvn dependency:tree
${basedir} 專案根目錄
${project.build.directory} 構建目錄,預設為target
${project.build.outputDirectory} 構建過程輸出目錄,預設為target/classes
${project.build.finalName} 產出物名稱,預設為${project.artifactId}-${project.version}
${project.packaging} 打包型別,預設為jar
${project.xxx} 當前pom檔案的任意節點的內容
mvn dependency:analyze(檢視宣告但是未使用的依賴)
常用外掛
Maven內建變數- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-compiler-plugin</artifactId>
- <version>3.0</version>
- <configuration>
- <source>1.7</source>
- <target>1.7</target>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <version>2.12.4</version>
- <configuration>
- <!--是否跳過單元測試 -->
- <skipTests>true</skipTests>
- <!--是否忽略單元測試錯誤 -->
- <testFailureIgnore>true</testFailureIgnore>
- </configuration>
- </plugin>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-archetype-plugin</artifactId>
- <version>2.3</version>
- </plugin>
- <plugin>
- <artifactId>maven-source-plugin</artifactId>
- <version>2.4</version>
- <configuration>
- <attach>true</attach>
- </configuration>
- <executions>
- <execution>
- <phase>compile</phase>
- <goals>
- <goal>jar</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- <plugin>
- <artifactId>maven-resources-plugin</artifactId>
- <executions>
- <execution>
- <id>copy-resources</id>
- <phase>process-resources</phase>
- <goals>
- <goal>copy-resources</goal>
- </goals>
- <configuration>
- <outputDirectory>${basedir}/target/classes</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/resources</directory>
- <includes>
- <include>jdbc.properties</include>
- </includes>
- </resource>
- </resources>
- </configuration>
- </execution>
- </executions>
- </plugin>
${basedir} 專案根目錄
${project.build.directory} 構建目錄,預設為target
${project.build.outputDirectory} 構建過程輸出目錄,預設為target/classes
${project.build.finalName} 產出物名稱,預設為${project.artifactId}-${project.version}
${project.packaging} 打包型別,預設為jar
${project.xxx} 當前pom檔案的任意節點的內容
聚合繼承
主要消除各個模組間重複的引用
父類
- <project>
- <modelVersion>4.0.0</modelVersion>
- <groupId>com.juvenxu.sample</groupId>
- <artifactId>sample-dependency-infrastructure</artifactId>
- <packaging>pom</packaging>
- <version>1.0-SNAPSHOT</version>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>junit</groupId>
- <artifactid>junit</artifactId>
- <version>4.8.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactid>log4j</artifactId>
- <version>1.2.16</version>
- </dependency>
- </dependencies>
- </dependencyManagement>
- </project>
子類繼承
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>com.juvenxu.sample</groupId>
- <artifactid>sample-dependency-infrastructure</artifactId>
- <version>1.0-SNAPSHOT</version>
- <type>pom</type>
- <scope>import</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
- <dependency>
- <groupId>junit</groupId>
- <artifactid>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>log4j</groupId>
- <artifactid>log4j</artifactId>
- </dependency>
參考:
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29254281/viewspace-2120430/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 學習Maven IntelliJMavenIntelliJ
- Maven學習總結Maven
- Maven學習筆跡Maven
- Javaxuex學習筆記---MavenJava筆記Maven
- Git和Maven的學習筆記GitMaven筆記
- 不學Maven會死?Maven真香!Maven
- 思維導圖學 MavenMaven
- 好程式設計師Java學習路線分享maven是什麼程式設計師JavaMaven
- 【Maven】Maven概述Maven
- Maven例項講解教程,從零開始學Maven,帶你快速入門!Maven
- MavenMaven
- 深度學習——學習目錄——學習中……深度學習
- 使用Maven打包你的應用——maven-jar-plugin & maven-assembly-plugin & maven-shade-pluginMavenJARPlugin
- 跟著官方文件學Maven構建生命週期Maven
- 深度學習學習框架深度學習框架
- 學習ThinkPHP,學習OneThinkPHP
- Maven-修改maven本地倉庫地址Maven
- 【maven】Maven報錯 zip END header not foundMavenHeader
- Maven教程(Eclipse配置及maven專案)MavenEclipse
- 強化學習-學習筆記3 | 策略學習強化學習筆記
- Maven 命令Maven
- Maven ArchetypeMaven
- Maven 整理Maven
- Maven 使用Maven
- Maven EclipseMavenEclipse
- Maven NetBeansMavenBean
- Maven POMMaven
- maven私服Maven
- What is maven?Maven
- 機器學習-整合學習機器學習
- 前端學習之Bootstrap學習前端boot
- 如何學習機器學習機器學習
- 機器學習整合學習—Apple的學習筆記機器學習APP筆記
- 機器學習——監督學習&無監督學習機器學習
- 前端週刊第62期:學習學習再學習前端
- 強化學習-學習筆記2 | 價值學習強化學習筆記
- 深度學習+深度強化學習+遷移學習【研修】深度學習強化學習遷移學習
- Maven:idea新增maven依賴分析外掛MavenIdea
- 學習產品快報09 | “CSDN學習”:增加學習提醒,提示學習不忘記