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 學習Maven
- Maven學習--profileMaven
- Maven學習總結Maven
- Maven學習筆跡Maven
- 學習Maven IntelliJMavenIntelliJ
- maven 學習筆記Maven筆記
- maven 學習總結(一)——Maven入門Maven
- maven 學習總結(四)——Maven核心概念Maven
- Maven 學習筆記——Maven和Eclipse(2)Maven筆記Eclipse
- Maven 學習筆記——Maven環境配置(1)Maven筆記
- Javaxuex學習筆記---MavenJava筆記Maven
- Maven 學習筆記一Maven筆記
- maven 學習總結(六)——Maven與Eclipse整合MavenEclipse
- maven 學習總結(二)——Maven專案構建過程練習Maven
- maven 學習總結(三)——使用Maven構建專案Maven
- maven 學習總結(九)——使用Nexus搭建Maven私服Maven
- Git和Maven的學習筆記GitMaven筆記
- maven一站式學習Maven
- maven學習(中)- 私服nexus搭建Maven
- maven學習(上)- 基本入門用法Maven
- maven 學習總結(八)——使用Maven構建多模組專案Maven
- maven學習總結(七)——eclipse中使用Maven建立Web專案MavenEclipseWeb
- maven 學習總結(五)——聚合與繼承Maven繼承
- Maven學習總結(42)——Maven多模組構建中常用的引數Maven
- Maven初學Maven
- Maven 學習筆記——將普通的Java專案轉換成Maven專案(3)Maven筆記Java
- 學習筆記——Maven 如何處理傳遞性依賴筆記Maven
- maven學習(下)利用Profile構建不同環境的部署包Maven
- 好程式設計師Java學習路線分享maven是什麼程式設計師JavaMaven
- 學習學習再學習
- 【Maven】Maven概述Maven
- Maven例項講解教程,從零開始學Maven,帶你快速入門!Maven
- 深度學習——學習目錄——學習中……深度學習
- 深度學習(一)深度學習學習資料深度學習
- 深度學習學習框架深度學習框架
- 強化學習-學習筆記3 | 策略學習強化學習筆記
- MavenMaven
- 學習產品快報09 | “CSDN學習”:增加學習提醒,提示學習不忘記