1、Maven Archetype Plugin
先来看一个最简单的创建Java项目的命令:
mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id]
archetype:create称为一个Maven目标 (goal)。而像-Dname=value这样的对是将会被传到目标中的参数,它们使用-D属性这样的形式,类似于你通过命令行向Java虚拟机传递系统属性。archetype:create这个目标的目的通过archetype快速创建一个项目。在这里,一个archetype被定义为“一个原始的模型或者类型,在它之后其它类似的东西与之匹配”。Maven有许多可用的archetype,从生成一个简单的Swing应用,到一个复杂的Web应用。
groupId:
定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联,它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。
artifactId:
定义了当前Maven项目在groupId中的唯一ID,一般跟项目的名称一致,如项目名称为:myproject,则artifactId为myproject。
The archetype plugin has four goals for direct use:
- archetype:create (deprecated) creates a Maven project from an archetype. It use the behaviour of the Archetype Plugin version 1.0-alpha-7.
- archetype:generate creates a Maven project from an archetype: asks the user to choose an archetype from the archetype catalog, and retrieves it from the remote repository. Once retrieved, it is processed to create a working Maven project.
- archetype:create-from-project creates an archetype from an existing project.
- archetype:crawl search a repository for archetypes and updates a catalog.
and three goals bound to default lifecycle by 'maven-archetype' packaging:
- archetype:jar (bound to the package phase) is used to build the archetype jar artifact.
- archetype:integration-test (bound to the integration-test phase) is used to execute archetype integration tests by generating sample projects from the just built archetype.
- archetype:update-local-catalog (bound to the install phase) is used to update the local catalog.
2、Maven项目的目录结构
maven是遵循"约定优于配置",默认目录结构如下:
- pom.xml maven的配置文件,位于项目的根目录下
- /src/main/java 项目主代码目录
- /src/main/resource 项目主资源目录
- /src/main/webapp 项目Web资源目录(必须包含WEB-INF,还有jsp、css、JavaScript等文件)
- /src/test/java 项目测试代码目录
- /src/test/resource 项目测试资源目录
- /target 输出目录,所有的输出都存放在这个目录
- /target/classes 编译之后,主代码class文件目录
- /target/test-classes 编译之后,测试代码class文件目录
3、创建一个简单的Maven项目
在cmd中运行如下命令:
mvn archetype:create -DgroupId=com.zheng.mavenExample -DartifactId=firstMavenProject
maven的大致结构如下:
在项目的根目录下,会有一个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"> <modelVersion>4.0.0</modelVersion> <groupId>com.zheng.mavenExample</groupId> <artifactId>firstMavenProject</artifactId> <version>1.0-SNAPSHOT</version> <packaging>jar</packaging> <name>firstMavenProject</name> <url>http://maven.apache.org</url> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>3.8.1</version> <scope>test</scope> </dependency> </dependencies> </project>
上面代码中最重要的是groupId,artifactId和version三行。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom、war构件,都是以基于这些基本的坐标进行区分的,每个maven项目,必需要声明groupId、artifactId、version,不能同时拥有一个具有相同groupId、artifactId、version标识的项目。
groupId:
定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联,它以创建这个项目的组织名称的逆向域名(reverse domain name)开头。
artifactId:
定义了当前Maven项目在groupId中的唯一ID,一般跟项目的名称一致,如项目名称为:myproject,则artifactId为myproject。
version:
指定了maven项目当前的版本,SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。随着项目的发展,version会不断更新,如升级为1.0、1.1-SNAPSHOT、1.1、2.0等等。
packaging:
项目的打包类型,默认是jar,描述了项目打包后的输出,其值可以为jar、war、pom。
name:
声明了一个对于用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个POM声明name,以方便信息交流。
properties:
元素定义了一个maven属性,然后在pom的其他地方使用${属性名}的方式引用该属性值,这样做的意义在于消除重复。
dependencies:
<dependencies>元素下可以包含多个dependency元素以声明项目的依赖,这里我们添加了一个依赖,groupId是junit,artifactId是junit,version是3.8.1。前面我们提到groupId、artifactId和version是任何一个Maven项目最基本的坐标,有了这段声明,Maven就能够自动访问中央仓库(http://repo.maven.apache.org/maven2/),根据groupId、artifactId、version生成下载地址:http://repo.maven.apache.org/maven2/junit/junit/3.8.1/,下载junit-3.8.1.jar构件,第一个junit是groupId,第二个junit是artifactId,第三个是版本号。
4、Maven 常用命令:
在项目所在路径的命令行终端,执行:
mvn compile
Maven开始下载依赖包,然后编译,最后提示“BUILD SUCCESS"证明编译成功。在项目mvnlearn目录下面生成target目录,编译好的字节码class问件就在这个目录里面。
5、Maven 常用命令:
ü mvn archetype:create -DgroupId=com.huawei.bme -DartifactId=test –Dversion=1.0
创建普通应用项目
ü mvn archetype:create -DgroupId=com.huawei.bme -DartifactId=testWeb -DarchetypeArtifactId=maven-archetype-webapp
创建WEB项目
ü mvn eclipse:eclipse
生成 Eclipse 项目文件及包引用定义,注意,需事先定义Classpath Variables: M2_REPO,指向本地maven类库目录。
ü mvn compile
编译主程序源代码,不会编译test目录的源代码。第一次运行时,会下载相关的依赖包,可能会比较费时。
ü mvn test-compile
编译测试代码,compile之后会生成target文件夹,主程序编译在classes下面,测试程序放在test-classes下。
ü mvn test
运行应用程序中的单元测试
ü mvn site
生成项目相关信息的网站,发布站点在target/site里。
ü mvn clean
清除目标目录(target)中的生成结果。
ü mvn package
依据项目,打包类型为jar的,在目录target中就会生成 jar 文件,打包类型为war的,生成 war 文件,打包之前会进行编译,测试。
ü mvn install
在本地 Repository 中安装 jar。
ü mvn deploy
在远程 Repository 中发布。
ü mvn install -DskipTests=true
忽略单元测试,在本地 Repository 中安装 jar。
ü mvn eclipse:clean
清除 Eclipse 项目文件及包引用定义
ü mvn install:install -file -Dfile=D:/opensource/dbunit-2.2/dbunit-2.2.jar -DgroupId=dbunit-DartifactId=junitperf -Dversion=2.2 -Dpackaging=jar
发布到本地仓库
ü mvn deploy:deploy -file -DgroupId=staticComparison -DartifactId=static-comparison -Dversion=2.0 -Dpackaging=jar -Dfile=c:/staticComparison_2.0.jar
发布到远程仓库
ü mvn help:describe -Dplugin=compiler -Dmojo=compile –Dfull
列出Compiler 插件的compile 目标的所有信息
ü pom: mvn help:effective-pom
查看实际使用的pom
ü mvn dependency:analyze
分析项目依赖
相关推荐
使用Maven Archetype插件可以快速创建一个多模块项目模板。首先,创建一个父项目,然后在父项目的pom.xml中添加子模块的定义,最后在父项目目录下为每个子模块生成对应的目录结构和基本的pom.xml。 4. 依赖管理: ...
本资源"mavenweb项目创建demo"旨在指导用户如何利用Maven创建一个Web应用程序,下面将详细阐述整个过程。 首先,我们需要理解Maven的项目对象模型(Project Object Model,POM)。POM是一个XML文件,包含了项目的...
在IT行业中,Maven是一个非常重要的工具,尤其对于Java开发者来说,它是构建和管理Java项目的标准之一。"新建Maven项目基础"这个...通过了解和熟练运用Maven,可以极大地提高开发效率,确保项目的可维护性和一致性。
Maven 使用一个统一的约定优于配置的理念,通过一个名为 `pom.xml` 的配置文件来管理项目的依赖、构建过程和发布步骤。这篇文档将详细介绍如何在 MyEclipse 中导入 Maven 项目以及使用 Maven 的常见命令。 首先,要...
1. 创建一个新的 Maven 项目,不包含任何源代码,只保留 `pom.xml` 文件。 2. 在 `pom.xml` 文件中定义父项目的坐标(groupId、artifactId 和 version),并添加必要的属性、依赖管理和插件管理等元素。 例如: ```...
标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...
使用Maven构建JavaWeb项目的第一步是创建一个新的Maven项目。这可以通过执行`mvn archetype:create`命令,选择一个适合的archetype,例如`maven-archetype-webapp`,来生成基础的项目结构。 三、Maven的POM.xml POM...
本篇文章将详细介绍如何在IDEA中创建一个Maven项目。 首先,打开IDEA并点击"Create New Project"。在弹出的对话框中,你会看到多种项目类型,选择"Maven"。在"Maven"选项卡下,你可以设置以下关键配置: 1. **...
Spring Boot 是一个基于 Spring 框架的快速开发工具,它简化了初始化、...以上就是关于Spring Boot项目与Maven本地仓库的一些关键知识点,理解并熟练运用这些概念,可以帮助开发者更高效地管理和构建Spring Boot项目。
1. **创建父项目**:首先,我们需要创建一个顶级的父`pom.xml`文件,定义公共的配置信息,如`groupId`、`artifactId`、`version`和`dependencyManagement`。 2. **创建子模块**:然后,为每个功能或服务创建一个子...
"maven聚合项目模板"是指使用Maven创建的一种特殊结构,用于组织多个相关但独立的子项目,使得这些子项目可以作为一个整体进行构建和管理。这种方式在大型项目或者有多个子模块的项目中非常常见。 1. **模块分组**...
Maven Archetype是Maven提供的一个用于创建项目骨架的工具。它允许我们定义一组模板文件,这些文件将被用来创建新的项目结构。通过Archetype,我们可以预定义项目的基本目录结构、POM文件以及相关的初始化代码,从而...
在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具。 1. **Maven简介** Maven...
1. **Project Object Model (POM)**: Maven 项目的中心是POM,它是一个XML文件,包含了项目的信息、构建配置、依赖关系和插件设置。Maven API提供了对POM的读取和操作,使开发者可以动态修改或创建POM文件。 2. **...
【描述】"maven整合mybatis做的一个例子,实现简单的查询"意味着这个DEMO旨在展示如何在Maven项目中配置和使用MyBatis来执行SQL查询。这个过程包括设置相关的依赖、配置MyBatis的核心XML文件以及编写Mapper接口和...
本篇文章将深入探讨如何利用Eclipse创建一个基于Maven的SpringMVC项目。 首先,我们需要了解Eclipse和Maven的基本概念。Eclipse是一款开源的IDE,尤其适用于Java开发,它提供了丰富的代码编辑、调试和版本控制功能...
从文件名称“maven_webapp”来看,这个项目可能是一个Maven构建的Web应用程序。标准的Maven Web项目结构通常包括以下几个关键目录: - `src/main/java`:存放Java源代码 - `src/main/resources`:放置资源文件,如...
标题 "maven-spring-mybatis小型项目开发环境(1)" 提到的是一个基于Maven、Spring和MyBatis的小型项目构建环境。这个环境是开发Java Web应用的基础,特别是对于那些需要快速搭建后端服务的开发者来说。让我们深入...
使用`mvn archetype:generate`命令,可以创建一个新的Maven项目。你需要提供groupId、artifactId和version等信息。 2. 构建项目 Maven的构建生命周期包括三个阶段:compile(编译)、test(测试)和install(安装)...
本项目采用Maven作为构建工具,Maven是一个强大的Java项目管理和综合工具,它能够帮助开发者管理项目的依赖关系,构建过程,以及生成文档。通过在项目中引入Maven,开发者可以方便地将此TCP通讯框架与其他Java项目...