maven
Posted so_easy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven相关的知识,希望对你有一定的参考价值。
排版优化https://www.zybuluo.com/Spancymath/note/1626553
Maven是一个跨平台的项目管理工具,主要用于基于Java平台的项目的构建、依赖管理。
Maven安装配置
- 从官网http://maven.apache.org/下载
- 设定环境变量:把下载下来的bin文件夹的全路径,例如F:workcoursemavenmavenin,添加到环境变量path中
检查安装成功的命令,用命令行工具
mvn -v
maven的一些简单约定和配置
a. 默认仓库的路径:pc的当前用户下的.m2文件夹,例如C:Usershang.m2
b. 找到下载的maven文件夹里的conf文件夹,有一个settings.xml,将其放入maven的默认仓库.m2中,在其中添加
c. 说明:
bin中存放可执行的二进制文件
conf存放settings.xml文件
lib 运行maven所依赖的jar包
d. maven项目
src/main/java 存放项目的java文件
src/main/resources 存放项目的资源文件,如spring,hibernate的配置文件
src/test/java 存放所有的测试的java文件
src/test/resources 存放测试用的资源文件
target 项目输出位置
pom.xml 文件
Maven项目
1.Maven坐标
groupId:定义当前maven项目属于哪个项目
artifactId:定义实际项目中的某一个模块
version:定义当前项目的当前版本
packaging:定义当前项目的打包方式
根据这些坐标,在maven库中可以找到唯一的jar包, 大致为:groupId/artifactId/version/artifactId-version.packaging
2.依赖管理
<groupId>com.zhang</groupId>
<artifactId>ParentJunit</artifactId> <!--项目中某一模块的唯一标识-->
<version>0.0.1-SNAPSHOT</version>
<packaging>pom</packaging> <!--指定项目用来继承,值为jar则可用来依赖-->
<name>Parent Junit</name> <!--用来显示-->
<url>www.zhang.com</url> <!--可以用来外部访问,对项目没有实际用处-->
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.9</version>
<scope>test</scope>
</dependency>
</dependencies>
3.继承管理
父项目要有
pom
<parent>
<groupId>com.zhang</groupId>
<artifactId>ParentJunit</artifactId>
<version>0.0.1-SNAPSHOT</version>
</parent>
4.项目的生命周期
clean(清理)
此生命周期旨在给工程做清理工作,它主要包含以下阶段:
pre-clean - 执行项目清理前所需要的工作。
clean - 清理上一次build项目生成的文件。
post-clean - 执行完成项目清理所需的工作.
default(默认)
validate - 验证项目是否正确且所有必要的信息都可用。
initialize - 初始化构建工作,如:设置参数,创建目录等。
generate-sources - 为包含在编译范围内的代码生成源代码.
process-sources - 处理源代码, 如过滤值.
generate-resources -
process-resources - 复制并处理资源文件,至目标目录,准备打包。
compile - 编译项目中的源代码.
process-classes - 为编译生成的文件做后期工作, 例如做Java类的字节码增强.
generate-test-sources - 为编译内容生成测试源代码.
process-test-sources - 处理测试源代码。
generate-test-resources -
process-test-resources - 复制并处理资源文件,至目标测试目录。
test-compile - 将需测试源代码编译到路径。一般来说,是编译/src/test/java目录下的java文件至目标输出的测试classpath目录中。
process-test-classes -
test - 使用合适的单元测试框架运行测试。这些测试代码不会被打包或部署。
prepare-package -
package - 接受编译好的代码,打包成可发布的格式,如 JAR 。
pre-integration-test -
integration-test - 按需求将发布包部署到运行环境。
post-integration-test -
verify -
install -将包安装到本地仓库,给其他本地引用提供依赖。
deploy -完成集成和发布工作,将最终包复制到远程仓库以便分享给其他开发人员。
site(站点)
pre-site - 执行一些生成项目站点前的准备工作。
site - 生成项目站点的文档。
post-site - 执行需完成站点生成的工作,如站点部署的准备工作。
site-deploy - 向制定的web服务器部署站点生成文件。
以上是关于maven的主要内容,如果未能解决你的问题,请参考以下文章
Spring+SpringMVC+MyBatis+Maven框架整合
关于mysql驱动版本报错解决,Cause: com.mysql.jdbc.exceptions.jdbc4Unknown system variable ‘query_cache_size(代码片段
如何在 Apache Felix maven-bundle-plugin 中设置 Provide-Capability 标头?