mvn java helloword,从零开始用好Maven:从HelloWorld到日常使用

1. Maven简介

Apache Maven 是一个软件项目管理工具。基于项目对象模型(POM)的理念,通过一段核心描述信息来管理项目构建、报告和文档信息。

Maven 是一个意第绪语(犹太人使用的国际语)单词,意思是知识的累加器。它最开始是被用来简化 Jakarta Turbine 项目的构建过程。在 Jakarta Turbine 项目中有几个不同的项目,虽然它们的Ant构建文件差异很小,但是 jar 包都在 CVS 上。于是想要找到一个标准而又简单的项目构建方法,既可以清晰地定义出这个项目由什么构成并发布项目信息,又能在不同项目间共享Jar包。

现在,任何一个基于Java的项目都能使用Maven来构建和管理,使 Java 开发人员的日常工作变得更轻松,让Java项目更容易被理解。

2. Maven使用

2.1 安装

必备条件: 已安装JDK

注意事项: Maven 3.3 及更高版本要求 JDK1.7 或者更高版本

2.2 Windows

下载解压缩

●下载 apache-maven-{版本号}-bin.zip

●找到合适的目录:最好无空格和中文,解压,内容如下

配置环境变量

●计算机 > 属性 > 高级系统设置 > 环境变量 > 系统变量

●新建 M2_HOME 变量,内容为 {解压路径}\apache-maven-{版本号}

●编辑 Path 变量,在内容结尾加上 ;%M2_HOME%\bin;

2.3 Linux

包管理器安装

下载安装

●下载 apache-maven-{版本号}-bin.tar.gz

●配置环境变量 export PATH=/opt/apache-maven-{版本号}/bin:$PATH

2.4 验证

Windows 打开 Cmd,Linux 运行 Shell,看到下面信息表示安装成功。

2.5 设置Maven

2.5.1 自定义仓库位置(可选)

Maven 下载的 jar 包默认存储到 ${user.home}/.m2/repository

编辑 {安装路径}\config\settings.xml,在下面增加一行填入自定义位置:

Linux 查看安装路径

2.5.2 设置国内镜像(可选)

Maven 默认从中央仓库 central 下载

改为国内镜像速度更快

编辑 {安装路径}\config\settings.xml,在 标签里加入新的镜像:

3. 使用

3.1 快速上手

3.1.1 新建示例项目

命令行不是必须的,但这个过程能有助于理解在 IDE 中的操作。

命令行新建项目

Windows 打开 Cmd,Linux 运行 Shell,执行下面指令。

执行成功可以看到下面字样:

POM.xml 包含了命令中的信息

目录结构

quickstart 项目的结构如下:

●项目源码:src/main/java

●Web 项目源码:src/main/webapp

●测试源码:src/test/java

●Maven 项目结构(Project Object Model POM):pom.xml

注意: 配置文件,如 log4j.properties 需要新建 src\main\resources 目录。这样编译时会打包到生成的 jar 中。

提示: 生成目录结构,Windows 在 Cmd 中输入 tree /f,Linux 安装 tree 程序后可直接输入 tree。

3.1.2 构建项目

Windows 打开 Cmd,Linux 运行 Shell,执行下面指令。

执行成功可以看到下面字样:

查看生成结果,在项目中新增了 target 目录,里面主要关注以下文件:

●class 文件:target\classes\org\tyh\mvn\quickstart\App.class

●test-classes 文件:target\test-classes\org\tyh\mvn\quickstart\AppTest.class

●jar 文件:target\mvn-quickstart-1.0-SNAPSHOT.jar

3.1.3 运行

Windows 打开 Cmd,Linux 运行 Shell,执行下面指令。

执行测试:

执行成功可以看到下面的结果:

3.2 新增依赖

3.2.1 搜索Maven

搜索

搜索时可采用高级搜索,g:{groupId} a:{artifactId}。例如 g:log4j a:log4j 就会列出 log4j 的最新版本。

●其他搜索仓库

注意: 类似 slf4j 这样依赖其他实现的包,需要查看官方文档,确认需要配合使用的 jar 包。否则会出 现编译通过,运行报错 的情况。

3.2.2 加入依赖项

3.2.3 验证

修改 App 类,加入 Log 和 测试代码:

执行程序之前,要找到依赖的 jar 文件所在的目录。默认是在 {用户主目录}/.m2/ 目录 下,利用 dependency:copy 插件 可以拷贝到 target\dependency 目录:

查看结果:

在命令行运行时,用 -cp 加入依赖的 jar 所在目录:

注意: 编译前需要加入 log4j.properties 到 src\main\resources 目录。下面是一个 Windows 下的 log4j.properties。

3.3 IDE中使用

3.3.1 Eclipse

新建项目

1.新建 Maven 项目

●File > New > Project

●选择 Maven Project (目录报错及解决办法*)

●(可选)项目类型 maven-archetype-simple 或其他类型

●输入 Group Id, Artifact Id, Name,Finish

2.添加依赖

●pom.xml 右键菜单 > Maven > Add Dependency

●在输入框中输入,比如 slf4j 会自动列出匹配结果,OK

●加入新的依赖保存文件,会在 Maven Dependencies 中列出 jar 及路径,并添加到项目的 classpath 中

3.编码

●编写 Java 代码,调试

4.构建

●项目 右键菜单 > Run As > Maven build

●第一次运行会提示输入 Maven build 的目标:Goal 里填写 package 进行构建 (支持的常用命令可以在这里找到 Maven in 5 Minutes:Maven Phases)

导入项目

●File > Import

●选择 Maven > Existing Maven Project

●选择项目 pom.xml 目录,Projects: 下面勾选 target

●点击完成

3.3.2 Idea

1.新建 Maven 项目

●File > New > Project

●选择 Maven

●(可选)项目类型 maven-archetype-simple 或其他类型

●输入 Group Id, Artifact Id

●输入项目名称,Finish

2.添加依赖

●pom.xml 手动添加依赖信息

●加入新的依赖保存文件,会在 External Libraries 中列出 jar 及路径,并添加到项目的 classpath 中

3.编码

●编写 Java 代码,调试

4.构建

●pom.xml 右键菜单 > Build module’module name’

●Maven build 会提示警告:Warning:java: 源值1.5已过时, 将在未来所有发行版中删除:可加入配置项解决

4. 常见问题与办法

4.1 如何设置编译支持的 JDK 版本?

全局指定

下面的脚本指定编译版本兼容 JDK 1.7

指定插件

在不改变全局兼容性的情况下,可以在插件中指定。例如,下面的脚本指定了 maven-compiler-plugin 编译的版本兼容 JDK 1.7。

4.2 如何指定自己的目录结构?

可以通过设置 节点下 , 参数指定。

4.3 在 pom 文件中配置了依赖,编译时还会报错。

下载的 jar 文件可能有问题。

●检查 maven 仓库地址,在搜索条件中检查 groupId 和 artifactId 是否正确。

●mvn clean 清理文件。

●mvn package 重新编译。

4.4 [WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!

POM 文件中没有指定编译时编码格式,可加入下面属性指定为 UTF-8。

类似的问题: [WARNING] Using platform encoding (Cp1252 actually) to copy filtered resources, i.e. build is platform dependent!

4.5 Invalid project description. … overlaps the workspace …

Eclipse 新建 Maven 项目时,可能会报告此错误。解决办法两种:

1.选择 workspace 以外的目录作为项目目录;

2.新建 Java Project,然后转为 Maven 项目:右键菜单 Config -> Convert to Maven Project

4.6 Warning:java: 源值1.5已过时, 将在未来所有发行版中删除

Idea 在 Maven Build 时发出警告,在 pom.xml 中加入以下内容:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值