项目管理工具之maven
来源:互联网 发布:离线写作软件 编辑:程序博客网 时间:2024/05/22 15:34
一,maven的介绍
Maven是一个项目管理工具,它包含了一个项目对象模型,一组标准集合,一个项目生命周期,一个依赖管理系统和用来运行定义在生命周期阶段中插件目标的逻辑。简单来说,maven的作用是通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具。
标准目录结构:
src
-main
–bin脚本库
–java java源代码文件
–resources资源库,会自动复制到classes目录里
–filters资源过滤文件
–assembly组件的描述配置(如何打包)
–config配置文件
–webapp web应用的目录。WEB-INF、css、js等
-test
–java单元测试java源代码文件
–resources测试需要用的资源库
–filters测试资源过滤库
-site Site(一些文档)
target
LICENSE.txtProject’slicense
README.txtProject’sreadme
二,环境搭建(配置环境变量)
(1)在path路径添加Maven的bin目录路径
D:\maven-3.3.9\bin
(2)添加环境变量 M2_HOME
M2_HOME = D:\maven-3.3.9
三,maven常用的构建命令
mvn -version/-v
显示版本信息
mvn package
打包生成target目录,编译、测试代码,生成测试报告,生成jar/war文件
mvn jetty:run
运行项目于jetty上,
mvn compile
编译
mvn test
编译并测试
mvn clean
清空生成的文件
mvn install
安装jar包到本地仓库中
mvn archetype:generate
按照提示一步一步来创建mvn项目
mvn archetype:generate
一步到位,直接创建mvn项目
-DgroupId=组织名
-DartifactId=项目名-模块名
-Dversion=版本号
-Dpackage=代码所在的包名
四,Pom.xml
该文件在maven工程中发挥着核心作用,源代码、配置文件、开发者的信息和角色、问题追踪系统、组织信息、项目授权、项目的url、项目的依赖关系
等等的管理都是通过Pom.xml,基本配置信息作用如下:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <!-- maven版本模块 --> <modelVersion>4.0.0</modelVersion> <!-- 基本设置 The Basics --> <!--整个系统的名称。--> <groupId>...</groupId> <!--子模块名称。--> <artifactId>...</artifactId> <!--依赖项的版本--> <version>...</version> <!--打包类型,jar,war等--> <packaging>...</packaging> <!-- 依赖集合 --> <dependencies>...</dependencies> <!-- 管理jar包的版本,使子项不显示版本 --> <dependencyManagement>...</dependencyManagement> <!-- 子模块对父模块的继承--> <parent>...</parent> <!-- 指定多个模块一起编译 --> <modules>...</modules> <properties>...</properties> <!-- 构建过程的设置 Build Settings --> <build>...</build> <reporting>...</reporting> <!-- 项目信息设置 More Project Information --> <!-- 项目描述名--> <name>...</name> <!--项目描述信息--> <description>...</description> <!--项目地址--> <url>...</url> <inceptionYear>...</inceptionYear> <!--许可证信息 --> <licenses>...</licenses> <!-- 组织信息--> <organization>...</organization> <!-- 开发人员信息--> <developers>...</developers> <!-- 环境设置 Environment Settings --> <issueManagement>...</issueManagement> <ciManagement>...</ciManagement> <mailingLists>...</mailingLists> <scm>...</scm> <prerequisites>...</prerequisites> <repositories>...</repositories> <pluginRepositories>...</pluginRepositories> <distributionManagement>...</distributionManagement> <profiles>...</profiles></project>
五,maven中的依赖关系
项目之间的依赖是通过pom.xml文件里面的dependencies元素下面的dependency元素进行的。一个dependency元素定义一个依赖关系。在dependency元素中我们主要通过依赖项目的groupId、artifactId和version来定义所依赖的项目。
groupId
依赖项的groupId
artifactId
依赖项的artifactId
version
依赖项的版本
scope
依赖项的适用范围:
compile,缺省值,适用于所有阶段,会随着项目一起发布。
provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。
exclusions
排除项目中的依赖冲突时使用。
六,依赖冲突
什么是依赖冲突?
比如C依赖了A和B,A和B有一个相同的jar,但是这个jar版本不一样,比如一个是1.0的,一个是2.0的,那C是依赖了1.0的包呢还是2.0的包?
检查项目中的依赖冲突:
<reporting> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-project-info-reports-plugin</artifactId> </plugin> </plugins></reporting>
运行:
mvnproject-info-reports:dependencies
就可以查看依赖项报告。
去除依赖项的代码:
<exclusions> <exclusion> <groupId>com.amuxia.mavenTest</groupId> <artifactId>projectC</artifactId> </exclusion> </exclusions>
原则:
1,短路优先
短路优先,例如:
甲项目->乙项目->丙项目(IO-1.0.jar)
甲项目->丁项目(IO-2.0.jar)
那么,甲项目添加的依赖包就是2.0
2,路程一样,先声明的优先
即在pom.xml中配置的顺序,在上面谁先加载的就使用谁的jar包。
- 项目管理工具之maven
- 项目管理工具之maven
- 项目管理工具之maven
- 大话项目管理工具之Maven篇
- javaweb之Maven项目管理工具学习
- 【转载】大话项目管理工具之Maven篇
- Selenium之maven(项目管理工具)
- 大话项目管理工具之Maven篇
- JAVA 项目管理工具: Maven
- Maven项目管理工具
- Maven 项目管理工具
- Java 项目管理工具Maven
- 项目管理工具Maven
- 项目管理工具Maven(二)
- Maven(项目管理工具)
- Java项目管理工具-Maven
- 项目管理工具—Maven
- 项目管理工具maven
- C语言写CGI程序
- redis 五大数据结构介绍
- 第八届福建省大学生程序设计竞赛训练总结【7/12】
- fiddler修改请求
- java406错误
- 项目管理工具之maven
- TCP三次握手的意义(目的)
- spring源码(2)Register the bean definitions(1)
- 7084:迷宫问题(dfs)
- Java_基础—IO流概述及其分类
- HDU-1078-FatMouse and Cheese
- POJ3069-贪心-Saruman's Army
- 数组的valueforkey方法
- HIbernate——事务并发问题及处理(乐观锁悲观锁)