groupId,artifactId,packaging,version 是Maven的坐标, 它们唯一标识了一个项目,name,url是pom提供的描述性元素,它们给人提供可阅读的名字
groupId:团体名,组织名
artifactId:在groupId下表示一个单独项目的唯一标识
version:版本号, 加SNAPSHOT表示正在开发中
packaging:项目类型,默认为jar,打包后文件格式。类型为jar的,输出jar文件,类型为war的项目,生成一个web应用
1、创建最简单的项目
在d:project下创建
命令:mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=demo
执行命令后, 就会在d:project创建文件夹为demo的项目
项目名:默认为-DartifactId=demo指定的名
java包名:默认为-DgroupId=ce.demo.mvn指定的名, 但也可以指定包名使用参数:-DpackageName=com.demo.mvn2
1、Maven插件和目标
命令:mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=demo
archetype称为插件
create称为目标(即明确的任务)
一个插件包多个目标
上条命令中, create目标定义了一个配置属性archetypeArtifactId,它有一个默认值maven-archetype-quickstart。maven-archetype-quickstart生成一个最小项目的躯壳,包括一个POM和一个类。Archetype插件可以用来生成复杂如web应用的项目,以及使用Archetype插件自定义自己的项目集合。
mvn archetype:create -DgroupId=ce.demo.mvn -DartifactId=demo -DarchetypeArtifactId=maven-archetype-quickstart
2、在pom.xml所在的文件下执行
mvn package 打包,生成jar文件
mvn install 安装到本地仓库
3、Maven本身不知道如何编译你的代码,不知道如何生成jar文件,它将这些任务交给了Maven插件,如Compiler插件和Jar插件,在需要的时候,将它们下载, 并定时的从Maven中央仓库更新。当你下载Maven的时候,只是一个基本躯壳的Maven核心,它知道如何解析命令行,管理classpath,解析POM文件,在需要的时候下载Maven插件。这样,Maven核心与插件分离。
4、一个生命周期的阶段可能绑定多个目标,如:mvn package 有多个目标被执行, 当执行mvn package时, package以前的生命周期也被执行
5、Maven仓库存放的文件目录格式:
/groupId/artifactId/verfsion/<artifactId>-<version>.<packaging>
6、Maven依赖有传递性,A依赖B,B依赖C,D, 那么只需要定义A依赖B即可,
7、创建的简单项目中依赖junit, 在.m2/repository/junit/junit/3.8.1下有junit-3.8.1.jar和junit-3.8.1.pom(定性所依赖的),还有Maven用来验证已下载构件准确性的校验和文件
8、当为项目创建jar文件时,它的依赖不会被一起在生成的构件中,只是将当前的项目java文件编译
9、当用Maven生成war,可以配置Maven,将所依赖的构件也包含进来。
如:依赖的Servlet 想在编译的时候需要,生成war包时,不将servlet包含进来,可以给依赖的servlet设置provided范围,这样在编译的时候使用, 在生成war包时,不将其包含在war包中
10、mvn archetype:create -DgroupId=org.sonatype.mavenbook.ch04 -DartifactId=simple-weather -DpackageName=org.sonatype.mavenbook -Dversion=1.0
11、可在在pom.xml文件中,定义组织,法律,开发人员信息
12、archiveClasses 将资源文件打成jar形式,testFailureIgnore忽略测试失败
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-war-plugin</artifactId>
<version>2.1-beta-1</version>
<configuration>
<!-- archiveClasses 将资源文件打成jar形式 -->
<archiveClasses>true</archiveClasses>
</configuration>
</plugin>
</plugins>
</build>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<testFailureIgnore>true</testFailureIgnore>
</configuration>
</plugin>
13、跳过单元测试
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
14、archetypeArtifactId=maven-archetype-webapp
mvn archetype:create -DgroupId=com.jd.card -DartifactId=card -DarchetypeArtifactId=maven-archetype-webapp -Dversion=1.0
15、子模块中只设置artifactId, groupId和version没有设置,默认从父模块继承了。实际上子模块从父模块继承一切东西,包括依赖,插件配置等等。
16、version的值为${project.version},这个值是一个属性引用,指向了POM的project/version的值,也就是这个POM对应的version,依赖其他模块时使用, 使得各模块的版本号是一致的。
17、依赖范围
compile(默认,对于编译、测试、运行三种classpath都有效)、test: 测试依赖范围(JUnit)、provided: 已提供依赖范围。使用此依赖范围的Maven依赖,对于编译和测试classpath有效,但在运行时无效。典型的例子是servlet-api,编译和测试项目的时候需要该依赖,但在运行项目的时候,由于容器已经提供,就不需要Maven重复地引入一遍。
相关推荐
本教程"maven学习.zip"主要关注的是Maven插件的使用,下面将详细介绍Maven插件及其在实际开发中的应用。 **1. Maven插件的概念** Maven插件是Maven生态系统的核心组成部分,它们提供了各种功能,如编译源代码、打包...
** Maven学习资源整理** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。本资源包是为初学者和有经验的开发者准备的一系列Maven学习资料,旨在帮助你更好地理解和...
【 Maven学习极品:初学者的完美指南】 Maven,一个由Apache软件基金会开发的项目管理工具,是Java世界中不可或缺的一部分。它简化了构建过程,通过自动管理项目的依赖关系,使得开发者可以专注于编写代码,而不是...
【Maven学习指南】 Maven是一个强大的项目管理工具,源于Apache组织,专为基于Java平台的项目构建、依赖管理和项目信息管理而设计。它通过一个明确的项目对象模型(POM)来描述项目,利用其内置的项目生命周期和...
**Maven学习笔记** 在Java开发领域,Maven是一个不可或缺的构建工具,它极大地简化了项目的构建、管理和依赖管理过程。Maven通过使用一个项目对象模型(Project Object Model,POM),XML格式的配置文件,定义了...
maven学习笔记maven学习笔记maven学习笔记
### Maven 学习文档知识点详解 #### 一、Maven简介 Maven 是一款非常流行的 Java 项目的构建管理和依赖管理工具。它可以帮助开发者自动化构建过程,简化项目管理和部署流程。通过使用 Maven,开发者可以轻松地管理...
Maven常用命令 Maven Maven学习
### Maven学习文档知识点详解 #### 一、Maven概述与安装目录介绍 Maven是一款流行的自动化构建工具,广泛应用于Java项目的构建过程中。它通过一种项目对象模型(Project Object Model,简称POM)来管理项目的构建...
maven学习文档,包含常见错误和docker的集成,包含多模块开发,不同的profile的开发,和一些插件基础属性说明
**Maven学习书籍** 《Maven实战》是一本专门针对Maven这一强大的Java项目管理和构建工具的书籍。作为国内首部Maven领域的专著,它深入浅出地讲解了Maven的核心概念、工作原理以及实际应用,是Java开发者进阶必备的...
**Maven学习手册** 在软件开发领域,Maven是一个强大的构建工具,主要用于Java项目管理。它简化了构建过程,依赖管理和项目的标准化。本手册旨在帮助开发者深入理解和有效地使用Maven,结合作者的实际项目经验,...
【Maven学习的基础资料】 Maven是一个强大的项目管理和综合工具,主要面向Java开发人员。它通过提供一个标准的项目生命周期框架,大大简化了项目的构建、文档生成、依赖管理、源码分布等任务。Maven的核心理念是...
maven学习资料
本资源“Maven学习必要插件”提供了一套预配置好的Maven环境,以便开发者可以快速投入到Maven的使用中。在本文中,我们将深入探讨Maven的核心功能、常用插件以及如何配置和使用这些插件。 1. **Maven核心功能** ...
通过本教程,读者将逐步学习到如何设置Maven环境、如何编写和理解POM文件、如何利用Maven的生命周期进行项目的构建和管理。以上内容不仅会为初学者提供Maven入门的全面指导,还会通过实际例子帮助开发者深入理解并...
**Maven 学习概要** Maven 是一个强大的项目管理工具,主要用于构建、管理和部署 Java 项目。它通过提供一套标准的项目对象模型(Project Object Model,POM)和生命周期概念,使得开发者能够轻松地处理项目的构建...
该资料主要讲maven的基础用法,安装和使用等。还有maven常常被使用到的一些命令和用法。注意事项等。
里面包含:两本maven电子书(《Maven权威指南中文版》和《Maven实战》)和两个文档(《在maven和jetty环境下eclipse的调试》、《基于Maven的Spring_+_Spring_MVC_+_Mybatis的环境搭建》),内容皆精品。