Maven总结

项目管理构建工具:maven ant gradle ==

项目管理利器(Maven)——maven介绍及环境搭建
maven可以帮助我们更有效地管理项目,它也是一套强大的自动化构建工具,覆盖了编译、测试、运行、清理、打包和部署等整个项目周期。它提供了一个仓库的概念,统一帮助我们管理项目所依赖的第三方jar包,最大地避免了由于运行环境配置的不同而引起的问题。
1、目录结构:
boot目录:包含一个类加载器框架。
bin目录:包含mvn的运行脚本。
confing目录:包含配置文件。
lib目录:包含mvn使用的类库。
2、配置环境变量:
M2_HOME maven主目录
path 添加 ;%M2_HOME%\bin
3、检测安装:cmd: mvn -v

Maven总结

pom文件简述:

pom.xml:(从struts-core的jar包中的maven中找到)
①.<modelVersion>:maven版本。
②.<groupId>:项目的包名。
③.<artifactId>:模块名(有时候建议是项目名)。
④.<version>:0.0.1SNAPSHOT快照版本
在cmd中运行项目:(先进入项目所存放的目录)
①mvn compile 编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的第三方插件和maven所依赖Jar,可能会比较费时

  已有的maven项目部署到新环境上时,执行mvn compile命令,自动下载(如依赖其他工程类,可以在相应的目录下用install创建jar)相关的Jar (老办法是需要对所依赖的Jar坐下改动,触发自动下载。)

②mvn test 运行应用程序中的单元测试
会生成target文件夹,主程序编译的字节码文件在classes下面,测试程序放在test-classes下,surefire-reports文件夹下面存放是的所生成的测试报告
③mvn package 会在target目录下生成一个maven01-model-0.0.1SNAPSHPT.jar

Maven总结

项目管理利器(Maven)——常用的构建命令
1. mvn -v 版本。
2. mvn compile 编译。
3. mvn test 测试。
4. mvn package 打包。
5. mvn clean 清除maven生成的target目录。
6. mvn install 将生成的jar安装到本地仓库中。

maven编译代码的流程:
1. 执行mvn compile 命令编译java代码文件;
2. 如果发现代码中引用到了其他的包文件(jar包);
3. 首先回去核心配置文件pom.xml文件中去查找相应的配置依赖;如图dependency中
4. 根据配置依赖先去本地的仓库中查找jar包资源;(可以在相应的目录下用install创建)
5. 如果本地不存在,则会再去联网到maven的*仓库中查找。

Maven创建目录的两种方式:(archetype自动创建目录骨架)
1.archetype:generate 按照提示进行选择。
2.archetype:generate -DgourpId=组织名,公司网址的反写+项目名称
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所在的包名

Maven总结

项目管理利器(Maven)——maven中的坐标和仓库
1、坐标。
2、构件通过坐标作为其唯一标识。
3、仓库:
-本地仓库。
-远程仓库:maven-model-builder-3.3.3.jar\org\apache\maven\model,超级pom.xml文件(其他pom均继承此pom),全球*仓库地址:https://repo.maven.apache.org/maven2
-镜像仓库:/conf/setting文件:
(一旦指定了镜像仓库,所有针对原仓库的访问都会转到镜像仓库,原仓库将不能直接访问)
<mirror>
<id>maven.net.cn</id>(该镜像仓库的ID)
<mirrorOf>central</mirrorOf>(为哪个仓库配置镜像--central为默认仓库--也可以使用通配符*匹配所有仓库)
<name>central mirror in china</name>
<url>http://maven.net.cn/content/groups/public</url>
</mirror>
4、修改本地仓库的位置:<localRepository>D:/Maven/repository</localRepository>

Maven总结

项目管理利器(Maven)——maven的生命周期和插件
Maven的生命周期大概如下:
clean compile test package install
这几个命令对应了一个项目的完整的构建过程,这几个步骤对应的都有插件来完成:
清理、编译、测试、打包、集成测试、验证、部署
Maven的生命周期分为三个独立的生命周期(每一个生命周期有分为若干个阶段,其中defaul是最核心的一个):
1. clean 清理项目
2. default 构建项目
3. site 生成项目的站点
1、clean 清理项目:
pre-clean :执行清理前的工作
clean:清理上一次构建生成的所有文件
post-clean:执行清理后的文件
2、default构建项目(最核心)
compile test package install
3、site 生成项目站点
pre-site 在生成项目站点之前要完成的工作
site 生成项目的站点文档
post-site在生成项目站点后要完成的工作
site-deploy发布生成的站点到服务器上
注意:Maven的生命周期对应的命令是顺序执行的,如果没有人为的顺序的一个个执行,那么Maven会默认的自动运行。
clean package 执行某个阶段时前面的阶段会自动运行

阶段之间是存在依赖关系(dependency)的,如test依赖test-compile。在执行mvn test时,会先运行mvn test-compile,然后才是mvn test。

控制在哪个阶段运行执行程序
(自动化测试代码运行在指定阶段)
以下这段pom信息是否可以控制代码在指定阶段运行???
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>

<name>项目的描述名</name>
<url>项目的地址</url>
<description>项目描述</description>
<developers>开发人员信息</developers>
<licenses>许可证信息</licenses>

<!-- 依赖列表 -->
<dependencies>
<!-- 依赖项 -->
<dependency>
<!-- 坐标 -->
<groupId></groupId>
<artifactId></artifactId>
<version></version>
<type></type>
<scope>依赖的范围</scope>(只在依赖的范围内有用,PS:junit如果此处为test,则只在测试的依赖范围内有用,如在主代码引用junit类则报错)
<optional>设置依赖是否可选,默认是false(子项依赖继承),如为true子项必须显示引入该依赖</optional>
<!-- 排除依赖传递列表 -->
<exclusions>
<exclusion></exclusion>
</exclusions>
</dependency>
</dependencies>

<!-- 依赖的管理,并不会被运行(不会引用到实际的依赖),一般定义在父模块中,由子模块去继承 -->
<dependencyManagement>
<dependencies>
<dependency></dependency>
</dependencies>
</dependencyManagement>

<!-- 对构建行为提供相应的支持 -->
<build>
<!-- 插件列表 -->
<plugins>
<plugin>
<!-- 指定坐标 -->
<groupId></groupId>
<artifactId></artifactId>
<version></version>
</plugin>
</plugins>
</build>

<!-- 一般在子模块中指定所继承的父模块 -->
<parent></parent>

<!-- 模块列表 -->
<modules>
<module></module>
</modules>

Maven总结

上一篇:java通过url抓取网页数据


下一篇:Oracle数据库导入导出 imp/exp备份还原