kernel的想法

在运行spark官方文档 java作业的时候,发现是用maven进行项目管理和构建的,所以看了一下关于maven很基础的东西,记录如下。

Apache Maven 是做什么用的?

Maven 是一个项目管理和构建自动化工具。但是对于我们程序员来说,我们最关心的是它的项目构建功能。所以这里我们介绍的就是怎样用 maven 来满足我们项目的日常需要。 Maven 使用惯例优于配置的原则 。它要求在没有定制之前,所有的项目都有如下的结构:

目录 Are

${basedir} 存放 pom.xml和所有的子目录

${basedir}/src/main/java 项目的 java源代码

${basedir}/src/main/resources 项目的资源,比如说 property文件

${basedir}/src/test/java 项目的测试类,比如说 JUnit代码

${basedir}/src/test/resources 测试使用的资源

一个 maven 项目在默认情况下会产生 JAR 文件,另外 ,编译后 的 classes 会放在 ${basedir}/target/classes 下面, JAR 文件会放在 ${basedir}/target 下面。

maven的安装

在安装 maven 前,先保证你安装了 JDK 。 JDK 可以从 Oracle 技术网上下载

Maven 官网的下载链接在这里,该页的最后给出了安装指南。

安装完成后,在命令行运行下面的命令:

$ mvn -v Apache Maven :51:28+0800)Maven home: /usr/local/maven/apache-maven-3.0.5Java version: 1.7.0_51, vendor: Oracle CorporationJava home: /usr/java/jdk1.7.0_51/jreDefault locale: zh_CN, platform encoding: UTF-8OS name: “linux”, version: “2.6.32-358.el6.x86_64”, arch: “amd64”, family: “unix”

如果你看到类似上面的输出的话,就说明安装成功了。 接下来我们用 maven 来建立最著名的“Hello World!”程序 🙂 注意:如果你是第一次运行 maven,你需要 Internet 连接,因为 maven 需要从网上下载需要的插件。

下面的步骤如果是初次接触maven可能有疑问,但是先照做,后面集中解释一些概念就明白了。

接下来执行命令

$mvn archetype:generate -DgroupId=-DartifactId=helloworld -Dpackage=-Dversion=1.0-SNAPSHOT

archetype:generate 目标会列出一系列的 archetype 让你选择。 Archetype 可以理解成项目的模型。 Maven 为我们提供了很多种的项目模型,包括从简单的 Swing 到复杂的 Web 应用。我们选择默认的 maven-archetype-quickstart,这是一个官方提供的用来快速理解maven的模型,该模型的具体编号可能随maven版本的不同而不同,我这里默认编号是630,注意如果是第一次使用maven这里会有很多需要下载的东西 ,耐心等待。

连打两个回车,这时候让你确定项目属性的配置,

这些属性是我们在命令行中用 -D 选项指定的。该选项使用 -Dname=value 的格式。回车确认,就完成了项目的建立,如下图所示:

这时候我们看一下 maven 给我们建立的文件目录结构

maven 的 archetype 插件建立了一个 helloworld 目录,这个名字来自 artifactId 。在这个目录下面,有一个 Project Object Model(POM) 文件 pom.xml 。这个文件用于描述项目,配置插件和管理依赖关系。 源代码和资源文件放在 src/main 下面,而测试代码和资源放在 src/test 下面。

Maven 已经为我们建立了一个 App.java 文件:

package com.mycompany.helloworld;/** * Hello world! * */{( String[] args ){System.out.println( “Hello World!” );}

正是我们需要的 Hello World 代码。所以我们可以构建和运行这个程序了。用下面简单的命令构建:

$cd helloword $mvn package

当你第一次运行 maven 的时候,它会从网上的 maven 库 (repository) 下载需要的程序,存放在你电脑的本地库 (local repository) 中,所以这个时候你需要有 Internet 连接。Maven 默认的本地库是 ~/.m2/repository/ 如果构建没有错误的话,就会得到类似下面的结果:

由于这里是在这台机器上第一次运行,所以要下载一些东西。

为了验证我们的程序能运行,执行下面的命令:

$java -cp target/helloworld-1.0-SNAPSHOT.jar com.mycompany.helloworld.App

无压力运行出结果

关于maven的一些核心概念解释POM (Project Object Model)

一个项目所有的配置都放置在 POM 文件中:定义项目的类型、名字,管理依赖关系,定制插件的行为等等。比如说,你可以配置 compiler 插件让它使用 java 1.5 来编译。 下面来看一下前面helloworld项目的pom.xml代码

=>4.0.0>helloworld>jar>>UTF-8>>junit>test></project>

在 POM 中,groupId, artifactId, packaging, version 叫作 maven 坐标,它能唯一的确定一个项目。有了 maven 坐标,我们就可以用它来指定我们的项目所依赖的其他项目,插件,或者父项目。一般 maven 坐标写成如下的格式:

groupId:artifactId:packaging:version

像我们的例子就会写成:

com.mycompany.helloworld: helloworld: jar: 1.0-SNAPSHOT

闲淡时光里徜徉书海。本文是旅游开心句子说说心情,希望对大家有帮助!

kernel的想法

相关文章:

你感兴趣的文章:

标签云: