`

Maven运用(二)用Maven创建一个简单的项目

 
阅读更多

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:

 

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

分析项目依赖

  • 大小: 12.8 KB
  • 大小: 5.1 KB
  • 大小: 4.4 KB
  • 大小: 2.1 KB
分享到:
评论

相关推荐

    使用Maven构建多模块项目

    使用Maven Archetype插件可以快速创建一个多模块项目模板。首先,创建一个父项目,然后在父项目的pom.xml中添加子模块的定义,最后在父项目目录下为每个子模块生成对应的目录结构和基本的pom.xml。 4. 依赖管理: ...

    mavenweb项目创建demo

    本资源"mavenweb项目创建demo"旨在指导用户如何利用Maven创建一个Web应用程序,下面将详细阐述整个过程。 首先,我们需要理解Maven的项目对象模型(Project Object Model,POM)。POM是一个XML文件,包含了项目的...

    新建maven项目基础

    在IT行业中,Maven是一个非常重要的工具,尤其对于Java开发者来说,它是构建和管理Java项目的标准之一。"新建Maven项目基础"这个...通过了解和熟练运用Maven,可以极大地提高开发效率,确保项目的可维护性和一致性。

    Maven构建项目文档

    Maven 使用一个统一的约定优于配置的理念,通过一个名为 `pom.xml` 的配置文件来管理项目的依赖、构建过程和发布步骤。这篇文档将详细介绍如何在 MyEclipse 中导入 Maven 项目以及使用 Maven 的常见命令。 首先,要...

    使用Maven建立父子项目

    1. 创建一个新的 Maven 项目,不包含任何源代码,只保留 `pom.xml` 文件。 2. 在 `pom.xml` 文件中定义父项目的坐标(groupId、artifactId 和 version),并添加必要的属性、依赖管理和插件管理等元素。 例如: ```...

    idea工具创建的Spring+SpringMVC+Hibernate+maven项目

    标题中的"idea工具创建的Spring+SpringMVC+Hibernate+maven项目"指的是使用IntelliJ IDEA这个集成开发环境(IDE)构建的一个Java Web项目,该项目整合了四个关键的技术框架:Spring、SpringMVC、Hibernate以及Maven...

    使用Maven构建JavaWeb项目实例

    使用Maven构建JavaWeb项目的第一步是创建一个新的Maven项目。这可以通过执行`mvn archetype:create`命令,选择一个适合的archetype,例如`maven-archetype-webapp`,来生成基础的项目结构。 三、Maven的POM.xml POM...

    IDEA创建maven项目

    本篇文章将详细介绍如何在IDEA中创建一个Maven项目。 首先,打开IDEA并点击"Create New Project"。在弹出的对话框中,你会看到多种项目类型,选择"Maven"。在"Maven"选项卡下,你可以设置以下关键配置: 1. **...

    spring boot 项目 + maven本地仓库

    Spring Boot 是一个基于 Spring 框架的快速开发工具,它简化了初始化、...以上就是关于Spring Boot项目与Maven本地仓库的一些关键知识点,理解并熟练运用这些概念,可以帮助开发者更高效地管理和构建Spring Boot项目。

    maven多模块空项目

    1. **创建父项目**:首先,我们需要创建一个顶级的父`pom.xml`文件,定义公共的配置信息,如`groupId`、`artifactId`、`version`和`dependencyManagement`。 2. **创建子模块**:然后,为每个功能或服务创建一个子...

    maven聚合项目模板

    "maven聚合项目模板"是指使用Maven创建的一种特殊结构,用于组织多个相关但独立的子项目,使得这些子项目可以作为一个整体进行构建和管理。这种方式在大型项目或者有多个子模块的项目中非常常见。 1. **模块分组**...

    【maven】多子模块maven模板工程archetype创建过程

    Maven Archetype是Maven提供的一个用于创建项目骨架的工具。它允许我们定义一组模板文件,这些文件将被用来创建新的项目结构。通过Archetype,我们可以预定义项目的基本目录结构、POM文件以及相关的初始化代码,从而...

    maven项目学习笔记记录

    在软件开发领域,Maven是一个强大的项目管理和构建工具,尤其在Java开发中广泛使用。本笔记将深入探讨Maven的核心概念、主要功能以及实际应用场景,帮助你更好地理解和掌握这一重要工具。 1. **Maven简介** Maven...

    maven API maven API

    1. **Project Object Model (POM)**: Maven 项目的中心是POM,它是一个XML文件,包含了项目的信息、构建配置、依赖关系和插件设置。Maven API提供了对POM的读取和操作,使开发者可以动态修改或创建POM文件。 2. **...

    maven整合mybatis做的一个demo

    【描述】"maven整合mybatis做的一个例子,实现简单的查询"意味着这个DEMO旨在展示如何在Maven项目中配置和使用MyBatis来执行SQL查询。这个过程包括设置相关的依赖、配置MyBatis的核心XML文件以及编写Mapper接口和...

    使用Eclipse构建Maven的SpringMVC项目

    本篇文章将深入探讨如何利用Eclipse创建一个基于Maven的SpringMVC项目。 首先,我们需要了解Eclipse和Maven的基本概念。Eclipse是一款开源的IDE,尤其适用于Java开发,它提供了丰富的代码编辑、调试和版本控制功能...

    Idea 构建Maven 项目,AES ECB 加解密,二次开发Jmeter

    从文件名称“maven_webapp”来看,这个项目可能是一个Maven构建的Web应用程序。标准的Maven Web项目结构通常包括以下几个关键目录: - `src/main/java`:存放Java源代码 - `src/main/resources`:放置资源文件,如...

    maven-spring-mybatis小型项目开发环境(1)maven spring mvc

    标题 "maven-spring-mybatis小型项目开发环境(1)" 提到的是一个基于Maven、Spring和MyBatis的小型项目构建环境。这个环境是开发Java Web应用的基础,特别是对于那些需要快速搭建后端服务的开发者来说。让我们深入...

    maven安装包 解压即用

    使用`mvn archetype:generate`命令,可以创建一个新的Maven项目。你需要提供groupId、artifactId和version等信息。 2. 构建项目 Maven的构建生命周期包括三个阶段:compile(编译)、test(测试)和install(安装)...

    TCP开发通讯框架,maven项目格式,方便集成

    本项目采用Maven作为构建工具,Maven是一个强大的Java项目管理和综合工具,它能够帮助开发者管理项目的依赖关系,构建过程,以及生成文档。通过在项目中引入Maven,开发者可以方便地将此TCP通讯框架与其他Java项目...

Global site tag (gtag.js) - Google Analytics