maven菜鸟,权当记录:
原文链接:http://jackyrong.iteye.com/blog/935590
我直接拷贝了
1 mvn -v查看版本
2 设置代理
编辑settings.xml文件
<proxies>
<proxy>
<id>abc</id>
<active>true</active>
<protocol>http</protocol>
<host> </host>
<port></port>
<username>...</username>
<password>....</password>
<nonProxyHosts>.....</nonProxyHosts>
</proxy>
</proxies>
nonproxyhosts指定哪些主机名不使用代理
3 mvn clean install会把生成的jar打包到MAVEN的本地仓库中
4 在dependency中,当<scope>为test时,说明该依赖包只会加入到测试代码中去
5 maven的编译依赖范围:
compile:默认使用该依赖,对编译,测试,运行三种classpath 都有效
test: 只对测试时有效,如junit
provided:在运行时无效,对编译和测试有效,如servlet-api
runtime:如JDBC,对测试和运行有效,在编译时无效
6 归类依赖
比如spring下的很多模块,都是同一个项目的,版本都相同,则为了优化,可以这样,
先定义一个<properties>项,即
<properties>
<abc>1.0</abc>
</properties>
然后其他的dependcy中,可以这样
<version>${abc}</version>
7 mvn dependency:list
可以看到当前项目已解析的依赖
mvn dependency:tree 看到依赖树
mvn dependency:analyse 查看依赖的工具
8 MVN的仓库
MVN仓库的路径形式为groupId/artifactId/version/articatId-version.packagin
仓库分为本地仓库和远程仓库
本地仓库的路径修改,可以修改settings.xml
<settings>
<localRepository>d:\java\......</localRepository>
</settings>
9 MVN的生命周期:clean(清理项目),default是构建项目,site是建立项目站点
10 命令行与生命周期
mvn clean
mvn test
mvn clean install
mvn clean deploy site-depoly
MVN的插件和目标对应的关系 dependcy:analyze 冒号前面是插件前缀,冒号后面是
插件的目标
11 聚合
当想一次过构建多个模块时,可以使用聚合,关系是包含和被包含的关系:
<modules>
<module>.. </module>
<module>.....</module>
</modules>
12 继承
抽取一个parent.pom,比如:
<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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>Account Parent</name>
<properties>
<springframework.version>2.5.6</springframework.version>
<junit.version>4.7</junit.version>
</properties>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-beans</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
<version>${springframework.version}</version>
</dependency>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>${junit.version}</version>
<scope>test</scope>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-
plugin</artifactId>
<configuration>
<source>1.5</source>
<target>1.5</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-
plugin</artifactId>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
这里有定义了父的依赖和插件。而子的继承则变为:
<parent>
<groupId>com.juvenxu.mvnbook.account</groupId>
<artifactId>account-parent</artifactId>
<version>1.0.0-SNAPSHOT</version>
<relativePath>../account-parent/pom.xml</relativePath>
</parent>
。。。。这里定义具体的依赖,其依赖不需要版本号了,比如这样:
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-core</artifactId>
</dependency>
</dependencies>
13 剪裁反应堆
比如多个模块的话,有可能只是选取其中的某些部分:
比如mvn-aggragtor下有mvn-email,mvn-parent,mvn-persist,mvn-email依赖mvn-
parent,则
mvn clean install -pl account-email -am
-pl:构建指定的模块,模块间用逗号分割 -am:同时构健模块的所依赖的模块
14 默认情况下,maven-surefile-plugin的test目标会自动执行测试
src/test/java下的一组命名模式的测试类,该组模式为
**/Test*.java:
**/*Test.java:
**/*TestCase.java:
跳过测试:mvn package-DskipTests
跳过测试代码的编译: mvn package-Dmaven.test.skip=true
15 只运行指定的测试:
mvn test-Dtest=类名
匹配
mvn test-Dtest=Random*Test
在pom中,可以自动运行以Tests结尾的测试类
<plugin>
<configuration>
<includes>
<include>**/*Tests.java</include>
</includes>
同样可以用<excludes><exclude>去排除运行测试的类
16 测试覆盖率报告
mvn跟开源测试覆盖率统计工具 合成,比如
mvn cobertura:cobertura
之后在target/site/cobertura下看到index.html文件
分享到:
相关推荐
hello, I am ok.
机器学习mvn实例。分为线性和非线性。适合初学者
checkup-mvn 当机器学习遇上大数据(粗浅学习中,文档欠奉)
本项目是SpringMVC框架入门配置 IDEA下搭建Maven项目,配置jetty服务,代码简单、完整。可以运行,做完入门的学习
mvn 架构师之路mavn学习工程
maven_实战_学习笔记 Maven安装 Maven 使用入门 主代码 位置:src/main/java 命令:mvn clean compile 解释:clean告诉maven清理target目录 compile告诉maven 编译项目主代码 测试代码 位置:src/test/java 命令...
DinteractiveMode = false跑步课mvn exec:java -Dexec.mainClass =“ org.zhaolei.Kmeans” mvn exec:java -Dexec.mainClass =“ org.zhaolei.Kmeans” -Dexec.args =“ arg0 arg1 arg2” 映射学习自我/ ...
Maven常用命令 Maven Maven学习
jsf_orm_mvn 该项目专注于学习jsf和Hibernate为orm
Maven多模块项目编译速度慢,下面我们来学习下优化的方法。 mvn clean package -T 4C -Dmaven.test.skip=true -Dmaven.compile.fork=true -T 4C 代表本机4个CPU内核都参与编译工程, -Dmaven.test.skip=true 代表...
Maven 学习 Maven简介 Maven安装 用maven创建第一个java工程 生成eclipse工程文件 下载maven的eclipse插件 导入工程
D:\WLP\src\wlp-api\mvn compile D:\WLP\src\wlp-api\mvn package install D:\WLP\src\wlp-api\cd …\wlp-core D:\WLP\src\wlp-core>mvn package install D:\WLP\src\wlp-core\cd …\wlp-parameter D:\WLP\src\wlp-...
maven学习与命令
周立功第二版之指令学习课件。大学老师上课用的基础易懂。
此项目包含完整的代码, 只需通过命令行输入:mvn clean package 便可生成可执行的包 具体操作: 打包完成后,将包上传至Spark2.0的环境中。 可通过: standAlone或local或yarn方式来执行,本例以local的方式来提交...
测试项目:学习
小时学习它来做一些有趣的事情,这是除其他可用框架之外的工具。 :paw_prints: | :clapper_board: | :new_moon_face: | :green_book: | :money_bag: | :China: 什么是刀片? Blade是一个追求简单、高效的 Web 框架,...
主要记录Maven项目管理工具的常用命令,生命周期,概念模型,Maven私服安装,上传本地资源到私服,从私服下载资源,安装第三方jar包到本地仓库,安装第三方jar包到私服,希望学习maven的朋友进行交流!
适合学习这个框架的初学者学习,都是本人亲自搭建测试,在搭建中遇到了很多问题,本人都一一解决并成功完成测试。主要遇到的问题包括: 1:maven下oraclejar包的正确加载 2:mybatis mybatis-generator插件在框架下...
RL4J:Java 强化学习有关 RL4J 的支持问题,请联系 。 RL4J 是一个与 deeplearning4j 集成并在 Apache 2.0 开源...OPTS=-Djava.library.path=THEFOLDEROFTHELIB mvn compile exec:java -Dexec.mainClass="YOURMAINCL