maven

Posted so_easy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了maven相关的知识,希望对你有一定的参考价值。

排版优化https://www.zybuluo.com/Spancymath/note/1626553

Maven是一个跨平台的项目管理工具,主要用于基于Java平台的项目的构建、依赖管理。

Maven安装配置

  1. 从官网http://maven.apache.org/下载
  2. 设定环境变量:把下载下来的bin文件夹的全路径,例如F:workcoursemavenmavenin,添加到环境变量path中
  3. 检查安装成功的命令,用命令行工具
    mvn -v

  4. maven的一些简单约定和配置

a. 默认仓库的路径:pc的当前用户下的.m2文件夹,例如C:Usershang.m2

b. 找到下载的maven文件夹里的conf文件夹,有一个settings.xml,将其放入maven的默认仓库.m2中,在其中添加F:/work/course/maven/mavenRepository/,可以指定本地仓库的路径

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 标头?

Maven FTP部署:无法创建目录

如何从詹金斯访问maven属性?

向小军 “小黑” 正式加入 Maven Skateboards