maven 小结学习+常用命令
1 groupId, artifactId, 这两个表示的是 jar的坐标点。 在所有的中央库中,表示一个对外的暴露自己的坐标系处理。
如果 version 没有的时候, 它会自动升级库时当有新的版本时。
2. maven用于构建生命周期,步骤:
a. 资源复制 资源复制可以进行定制.
b. 执行编译 源代码编译在此阶段完成.
c. 打包 创建JAR/WAR包如在 pom.xml 中定义提及的包.
d. 安装 这一阶段在本地/远程Maven仓库安装程序包
3. 常用的命令:
clean: 当 mvn clean 命令执行时,Maven会删除编译目录。
validate: 验证项目是否正确,并且所有必要的信息可用于完成构建过程
compile: 编译该项目的源代码
test: 运行测试使用合适的单元测试框架(JUnit)
package: 提取编译后的代码,并在其分发格式打包,如JAR,WAR或EAR文件
verify: 运行任何检查,验证包是有效的,符合质量审核规定
install: 将包安装到本地存储库,它可以用作当地其他项目的依赖
deploy: 复制最终的包到远程仓库与其他开发者和项目共享.
常用的也就是install, clean, package。
4. Maven 提供以下两种类型插件:
类型 描述
构建插件 在生成过程中执行,并在 pom.xml 中的<build/> 元素进行配置
报告插件 在网站生成期间执行,在 pom.xml 中的 <reporting/> 元素进行配置
5. pom中得变量定义
在根节点project下增加properties节点,所有自定义变量均可以定义在此节点内,如下所示:
<!-- 全局属性配置 -->
<properties>
<project.build.name>tools</project.build.name>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
Maven内置变量说明:
${basedir}: 项目根目录
${project.build.directory}: 构建目录,缺省为target.
${project.build.outputDirectory} : 构建过程输出目录,缺省为target/classes
${project.build.finalName}: 产出物名称,缺省为${project.artifactId}-${project.version}
${project.packaging}: 打包类型,缺省为jar
${project.xxx}: 当前pom文件的任意节点的内容。
对于在提供测试环境,还是开发环境的时候, 这个动态值可以进行配置文件的灵活处理。
5. 有一些包在本地和服务都没有这个包得时候, 应为还是有一些包是不支持的。 通过这个设置也是可以进行包得添加引用的。
<systemPath>${basedir}\src\lib\ldapjdk.jar</systemPath>
6. 自动化部署等问题,更多的是通过相应的插件来处理这个问题。 如: org.apache.tomcat.maven, 这样的处理都直接找相应的插件处理。