02.第一个maven应用

第一个maven应用

前置条件

  • 已安装maven

建立目录并编写maven的pom.xml

在系统任意目录下建立项目目录,并在目录下建立pom.xml文件,修改pom.xml文件内容如下:

<?xml version="1.0" encoding="UTF-8"?>

<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
        xmlns="http://maven.apache.org/POM/4.0.0"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <modelVersion>4.0.0</modelVersion>
        <groupId>org.test</groupId>
        <artifactId>demo</artifactId>
        <version>1.0-SNAPSHOT</version>

        <properties>
                <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        </properties>

</project>

注释:
第一行为标准的xml头

第三、四、五行为xml的约束,为固定写法,如果使用的maven版本不同可能会有不同

第六行为maven的POM项目模型版本,一般不会变。

第七行groupId为组织Id,一般为项目所属组织,构建时生成的路径也是由此生成。

第八行artifactId为项目名称,它和group ID一起唯一标识一个构件(项目)。

第九行version为项目版本号,项目当前版本,格式为:主版本.次版本.增量版本-限定版本号

第十一行properties节点中及其中的project.build.sourceEncoding定义了项目源代码的编码格式

建立源代码和测试代码目录

在项目目录中建立如下目录结构:

basedir
    └─src
        ├─main
        │  └─java
        │      └─org
        │          └─test
        │              └─main
        └─test
            └─java
                └─org
                    └─test
                        └─main

建立源代码和测试代码

新建文件:src\main\java\org\test\main\HelloMaven.java,内容如下:

package org.test.main;

public class HelloMaven{
    public static void main(String[] args){
        System.out.println("Hello Maven");
    }

    public String say(String name){
        return "Hello "+name;
    }
}

新建文件:src\test\java\org\test\main\TestHelloMaven.java,内容如下:

package org.test.main;

import org.junit.*;
import static org.junit.Assert.*;

public class TestHelloMaven{
    @Test
    public void testHelloMaven(){
        HelloMaven hm = new HelloMaven();
        String result = hm.say("Maven");
        assertEquals(result,"Hello Maven");
    }

}

编译

打开一个终端,切换到项目目录,执行以下命令:

mvn compile

此时maven从中心仓库中下载需要依赖的项目包,到用户目录的.m2目录(此目录可配置)下,并且在完成后,编译源代码文件,并输出结果,如果结果如下,则表示编译成功:

[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ demo ---
[INFO] Changes detected - recompiling the module!
[INFO] Compiling 1 source file to E:\maven\demo\target\classes
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.429 s
[INFO] Finished at: 2015-10-20T15:23:50+08:00
[INFO] Final Memory: 16M/110M
[INFO] ------------------------------------------------------------------------

此时,目录结构如下:

├─src
│  ├─main
│  │  └─java
│  │      └─org
│  │          └─test
│  │              └─main
│  └─test
│      └─java
│          └─org
│              └─test
│                  └─main
└─target
    ├─classes
    │  └─org
    │      └─test
    │          └─main
    └─maven-status
        └─maven-compiler-plugin
            └─compile
                └─default-compile

target目录为编译输出目录。

测试

修改pom文件,在project节点下添加如下内容:

<dependencies>
    <dependency>
        <groupId>junit</groupId>
        <artifactId>junit</artifactId>
        <version>4.12</version>
    </dependency>
</dependencies>

此节点添加了项目对Junit包的依赖,其中的groupId、artifactId、version为Junit在maven中心仓库的坐标(唯一标识)。

修改完成后,在终端中执行如下命令:

mvn test

此时,maven下载与测试相关的包,以及依赖的Junit包到用户目录的.m2文件夹,之后完成测试。
显示如下内容表示命令执行成功:

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running org.test.main.TestHelloMaven
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.087 sec

Results :

Tests run: 1, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.373 s
[INFO] Finished at: 2015-10-20T15:31:57+08:00
[INFO] Final Memory: 14M/138M
[INFO] ------------------------------------------------------------------------

测试之后的目录结构如下:

├─src
│  ├─main
│  │  └─java
│  │      └─org
│  │          └─test
│  │              └─main
│  └─test
│      └─java
│          └─org
│              └─test
│                  └─main
└─target
    ├─classes
    │  └─org
    │      └─test
    │          └─main
    ├─maven-status
    │  └─maven-compiler-plugin
    │      ├─compile
    │      │  └─default-compile
    │      └─testCompile
    │          └─default-testCompile
    ├─surefire-reports
    └─test-classes
        └─org
            └─test
                └─main

surefire-reports目录包含了测试结果。

清理

clean指令用于清除编译、测试、打包时生成的目录及文件。

在项目目录中运行命令:

mvn clean

此时项目目录下的target目录被删除。

打包

package指令用于生成项目的jar包。

在项目目录中运行命令:

mvn package

此时,maven会下载相关包,编译源代码,测试代码,执行测试,如果测试通过,源代码将被打包。target目录下会生成项目的jar文件。

安装

install 指令用于将包安装到本地的maven仓库中,供其它的项目引用。

在项目目录中运行命令:

mvn install

执行结束后,系统用户目录下会在生成对应目录及文件如下:

~/.m2/repository/org/test/demo$ls -alh
total 5.0K
drwxr-xr-x 1 Cloud 197121   0 十月 20 08:23 .
drwxr-xr-x 1 Cloud 197121   0 十月 20 08:23 ..
drwxr-xr-x 1 Cloud 197121   0 十月 20 08:23 1.0-SNAPSHOT
-rw-r--r-- 1 Cloud 197121 274 十月 20 08:23 maven-metadata-local.xml

将maven项目转换成Eclipse支持的Java项目

在项目目录中运行命令:

mvn eclipse:eclipse

此时项目目录下会生成.classpath 和 .project。打开安装了Maven Integration for Eclipse插件的eclipse导入项目即可.

组合指令

maven的编译,清理,测试,打包,部署命令是可以几个命令同时组合起来使用的,常用的命令组合

如:

先清理再编译:mvn clean compile

先清理后打包:mvn clean package

maven的默认约定

上面的示例中,maven使用一条指令,就完成了很多工作。例如:例如,编译src/main/java目录下的源代码,输出到target目录下。这些目录,都是maven预设置的。maven采用类化于grails"约定优于配置"的原则。

目录 描述
${project.dir}/src/main/java java源码目录
${project.dir}/src/main/resources 资源文件目录
${project.dir}/src/main/filters 资源过滤目录
${project.dir}/src/main/webapp web应用文件目录(当打包为war时),如WEB-INF/web.xml
${project.dir}/src/test/java 测试java源码目录
${project.dir}/src/test/resources 测试资源文件目录
${project.dir}/src/test/filters 测试资源过滤目录
${project.dir}/src/it 集成测试(主要为插件)
${project.dir}/src/assembly Assembly descriptors
${project.dir}/src/site 项目site输出目录
${project.dir}/LICENSE.txt 项目许可证
${project.dir}/NOTICE.txt 项目依赖类库的属性要求,及以通告
${project.dir}/README.txt 项目的README文件,用于描述这份源码是用来做什么的?如何使用项目?项目中重要的文件和子目录的结构信息?
时间: 2024-11-26 17:24:06

02.第一个maven应用的相关文章

如何在maven项目里面编写mapreduce程序以及一个maven项目里面管理多个mapreduce程序

我们平时创建普通的mapreduce项目,在遍代码当你需要导包使用一些工具类的时候, 你需要自己找到对应的架包,再导进项目里面其实这样做非常不方便,我建议我们还是用maven项目来得方便多了 话不多说了,我们就开始吧 首先你在eclipse里把你本地安装的maven导进来 选择你本地安装的maven路径 勾选中你添加进来的maven 把本地安装的maven的setting文件添加进来 接下来创建一个maven项目 可以看到一个maven项目创建成功!! 现在我们来配置pom.xml文件,把map

【Java_SSM】(二)使用eclipse创建一个Maven web工程

这篇博文我们介绍一下如何利用eclipse创件一个maven web工程. (1)File--New--Other--Maven--Maven project 此处我们快速创建一个maven工程 点击next finish创建工程 (2)项目src/mian/webapp中可能会缺少web.xml文件(pom.xml文件报错),添加步骤如下: 项目工程右键--properties--Project facets,取消此处对勾,点击Apply 然后再添加对勾,点击红圈处 确认OK即可!

创建一个maven web project

几经周折总算是找到了和高杨学长一样的web  project的方法.感谢学长的一语点醒.我之前以为,既是maven又是web project的项目得要是通过dynamic web project转换到maven.实际上,是我理解错误了,maven就自带有创建web project的功能. 创建一个maven web project: 选择maven-archetype-webapp项目: New Maven project: 生成的项目的结构如下: maven自动将src/main/webapp

1.Maven+SpringMVC+Eclipse软件安装配置,Maven报插件错误,Eclipse总是卡死的解决办法,导入一个maven工程后 一直显示importing maven project

 使用Maven+SpringMVC+Eclipse软件安装配置过程中的问题: 1.Eclipse总是卡死的解决办法: 一:内存不足所以会卡死,配置一下eclipse.ini修改这几个值就好了-XX:MaxPermSize=768m-Xms1024m-Xmx3072m搜索 二:修改window->preferences --- > JAVA->Edittor->Hovers,将右侧所有复选框清空. 2.因为eclipse上一次未正常关闭,导致启动卡死,错误日志为: [plain

2.Maven特点,Maven约定,新建一个Maven项目

 1 Maven是跨平台的项目管理工具.主要服务于基于java平台的项目构建,依赖管理和项目信息管理. 项目构建 清理à编译à测试à报告à打包à部署 理想的项目构建: 高度自动化 跨平台 可重用的组件 标准化的 依赖管理 工程的jar包的管理 要进行依赖管理的原因 自动下载 统一依赖管理 项目信息管理(包括) 项目名称描述等 开发人员信息 开发者信息等 2 Maven的特点 A 拥有约定,知道你的代码在哪里,放到哪里去 B 拥有一个生命周期,例如执行mvn install就可以自动执行编译,

2.Maven特点,Maven约定,建立第一个Maven项目

?? 1 Maven是跨平台的项目管理工具.主要服务于基于java平台的项目构建,依赖管理和项目信息管理. 项目构建 清理à编译à測试à报告à打包à部署 理想的项目构建: 高度自己主动化 跨平台 可重用的组件 标准化的 依赖管理 project的jar包的管理 要进行依赖管理的原因 自己主动下载 统一依赖管理 项目信息管理(包含) 项目名称描写叙述等 开发者信息 开发人员信息等 2 Maven的特点 A拥有约定.知道你的代码在哪里,放到哪里去 B拥有一个生命周期.比如运行mvn install就

一个Maven实现的验证码模块

下面是Maven构建的实现账户注册服务的account-captcha模块,该模块负责处理账户注册时key生成.图片生成以及验证等. POM部分配置 //account-captcha的pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="h

Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目

1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开 pom.xml 文件,添加如下内容: 1 <project xmlns="http://maven.apache.org/POM/4.0.0" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0

Maven 系列 二 :Maven 常用命令,手动创建第一个 Maven 项目【转】

1.根据 Maven 的约定,我们在D盘根目录手动创建如下目录及文件结构: 2.打开 pom.xml 文件,添加如下内容: 1 <project xmlns="http://maven.apache.org/POM/4.0.0" 2 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 3 xsi:schemaLocation="http://maven.apache.org/POM/4.0.0