搜档网
当前位置:搜档网 › maven笔记

maven笔记

1、maven 最主要的命令

mvn clean compile //编译
mvn clean test //编译测试类,测试
mvn clean package //打包,默认(jar)
mvn clean install //安装到本地maven仓库,以供其他工程使用

可以理解为4个生命周期,执行后面的会把前面的执行上,如执行test,会自动先执行compile。
又如install会先执行compile、test、package

2、构件————概念
在maven里,任何一个依赖、插件或者项目构建的输出,都可以称为构件。

3、maven的build包含生命周期阶段可以大致理解为:
1、initialize
2、compile
3、test
4、package
5、integrationTest
6、deploy

4、default生命周期的内置插件绑定关系及具体任务

生命周期阶段 插件:目标 执行任务
process-resources maven-resources-plugin:resources 复制主要资源文件至主输出目录
compile maven-compiler-plugin:compile 编译主代码至主输出目录
process-test-resources maven-resources-plugin:testResources复制测试资源文件至测试输出
test-compile maven-compiler-plugin:testCompile 编译测试代码至测试输出目录
test maven-surefire-plugin:test 执行测试用例
package maven-jar-plugin:jar 创建项目jar包
install maven-install-plugin:install 将项目输出构件安装到本地仓库
deploy maven-deploy-plugin:deploy 将项目输出构件部署到远程仓库

5、跳过test的install
mvn install -Dmaven.test.skip=true
mvn install -DskipTests

6、输出详细stack可以加参数-X

7、pom继承父pom的写法

com.suning.sample
snf-sample-pom
0.0.1
../snf-sample-pom/pom.xml


8、通过依赖管理——dependencyManagement可以实现各pom的版本统一:
父pom在dependencyManagement中写完整的dependency,子类只写部分内容的dependency(如不写版本),
剩余的从父类的dependencyManagement中继承,从而实现只要更改父pom即可更改所有相关pom的版本。
优点是如果子pom中没有相关dependency,子pom不会引人父pom的dependencyManagement,相当灵活。

9、插件管理——pluginManagement类似上面第8条的dependencyManagement

10、聚合与继承是两个概念,聚合是方便快速构建项目,继承为了消除重复配置。

11、遵循约定优于配置

12、聚合项目的构建顺序不单单取决于pom在聚合pom中的顺序,当遇到继承和依赖时
顺序类似于spring的bean装载的顺序。

13、有聚合pom的情况下,执行聚合pom单独构建指定模块的指令:
mvn clean install -pl project-module1,project-module2

14、创建私服可使用Nexus

15、maven-surefire-plugin的test目标会自动执行测试路径:src/test/java下面
**/Test*.java
**/*Test.java
**/*

TestCase.java
这几个命名格式的类

16、动态指定要运行的测试用例
mvn test -Dtest = <需要测试的测试用例类>

17、Maven Profile 可以实现在不同环境下的不同配置,应用相当于修改pom中的某个子集。

开发人员在使用mvn命令的时候再后面加上 -Pdev 激活dev profile,其他的同理。



dev

true



../${project.parent.artifactId}/vars/vars.dev.properties




pre


../${project.parent.artifactId}/vars/vars.pre.properties




prod

0.0.1



../${project.parent.artifactId}/vars/vars.prod.properties





18、Maven属性properties

可以默认通过通过${name} 获取,只要把该文件配置为resource路径下面

如果是通过文件.properties的方式获取属性值,可以在插件 maven-resources-plugin 中配置改变默认的获取方式。详细请看 snf-parent.pom

元素可用来方便pom的管理。

9.7.0.4

后面在pom中要使用9.7.0.4版本的值只要使用
${db2-jdbc-version}

19、关于build.filters.filter
定义过滤,用于替换相应的属性文件,使用maven定义的属性。

maven 的 properties 加载顺序

1、 中的配置
2、pom.xml 中的

20、问题: 当工程文件都没什么错误,但项目文件夹上出现X时,可能由于更改了 主工程pom,但子工程没更新依赖

解决方式:右击工程——》Maven——》Update Maven Dependencies 即可

21、工程打包成war包,一定要有web.xml。web.xml定义了war包的结构

22、设置maven默认jdk版本:
1、修改settings.xml文件

jdk-1.6

true
1.6


1.6
1.6
1.6



当然可以修改pom中的插件配置,只是每次都要配置比较麻烦,但建议还是配置上。这样方便移植。






相关主题