博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
使用maven编译Java项目 http://www.tuicool.com/articles/YfIfIrq
阅读量:7011 次
发布时间:2019-06-28

本文共 3327 字,大约阅读时间需要 11 分钟。

使用maven编译Java项目

综述

本文演示了用Maven编译Java项目

需要

  • 时间:15分钟
  • 文本编辑器或者IDE
  • JDK 6 或者更高版本

创建项目

本例主要为了展示Maven,所以Java的项目力求简单。

创建项目结构

选择一个项目目录,在 *nix系统上使用下面语句

mkdir -p src/main/java/hello

window下使用命令

mkdir src\main\java\hello

创建如下结构:

└── src    └── main        └── java            └── hello

在  src/main/java/hello 目录下创建Java文件  HelloWorld.java 和  Greeter.java

src/main/java/hello/HelloWorld.java
package hello;public class HelloWorld { public static void main(String[] args) { Greeter greeter = new Greeter(); System.out.println(greeter.sayHello()); } }
src/main/java/hello/Greeter.java
package hello;public class Greeter { public String sayHello() { return "Hello world!"; } }

现在项目完成,可以用Maven编译了。有关Maven的安装,可以参考  

定义简单的Maven编译

首先,在项目的根目录下创建一个Maven项目定义文件  pom.xml ,该文件主要是说明项目的名称、版本和依赖库 

pom.xml
4.0.0
org.springframework
gs-maven
jar
0.1.0
org.apache.maven.plugins
maven-shade-plugin
2.1
package
shade
hello.HelloWorld

除了<packaging> 元素可选外,其他的元素是构成  pom.xml 文件的最基本的元素了。它包括以下几个项目的配置: 

  • <modelVersion> :POM 模块版本(通常是4.0.0).
  • <groupId> :项目所属的组织编号,通常用域名
  • <artifactId> 项目的名称(比如,JAR或者WAR的名称)
  • <version> 项目编译的版本号
  • <packaging> 项目打包形式,jar或者war

编译Java代码

运行下面语句编译

mvn compile

编译完成的  .class 文件将会出现在  target/classes 目录下.如下图 

运行项目:

mvn exec:java -Dexec.mainClass="hello.HelloWorld"

输出如下:

如果不想直接运行  .class 文件,可以将其打包: 

mvn package

打包完成后,会在  target 目录下生成一个JAR文件,文件名由<artifactId> 和 <version>组成。比如本例,将会根据  pom.xml 生成  gs-maven-0.1.0.jar.

如果你想安装您的项目的JAR文件到本地Maven仓库,那么你应该调用下面语句:

mvn install

此时,你的项目代码将会经过编译、测试、打包并拷贝到本地依赖库,提供给其他项目引用。

说到项目依赖,下面说下  声明依赖

声明依赖

上面的例子比较简单,没有用到其他库。但是真实的项目可能会引用(依赖)到很多其他库。

下面例子,依赖了  Joda Time 的库。 

修改  src/main/java/hello/HelloWorld.java

package hello;import org.joda.time.LocalTime;public class HelloWorld { public static void main(String[] args) { LocalTime currentTime = new LocalTime(); System.out.println("The current local time is: " + currentTime); Greeter greeter = new Greeter(); System.out.println(greeter.sayHello()); } }

现在运行  mvn compile 将会报错,因为没有声明依赖。在 <project> 节点下插入如下: 

joda-time
joda-time
2.2

这段内容就声明了项目的依赖。每个依赖节点<dependency>都由三个子节点组成:

  • <groupId> : 该依赖库所属的组织名称
  • <artifactId> : 依赖的库名
  • <version> : 依赖的库版本

在POM 4中,<dependency> 中还引入了<scope> ,它主要管理依赖的部署。目前<scope> 可以使用5个值:

  • compile,缺省值,适用于所有阶段,会随着项目一起发布。
  • provided,类似compile,期望JDK、容器或使用者会提供这个依赖。如servlet.jar。
  • runtime,只在运行时使用,如JDBC驱动,适用运行和测试阶段。
  • test,只在测试时使用,用于编译和运行测试代码。不会随项目发布。
  • system,类似provided,需要显式提供包含依赖的jar,Maven不会在Repository中查找它。

现在你运行  mvn compile 或者  mvn package ,Maven会自动下载相关依赖。 

完整的  pom.xml

4.0.0
org.springframework
gs-maven
jar
0.1.0
joda-time
joda-time
2.2
org.apache.maven.plugins
maven-shade-plugin
2.1
package
shade
hello.HelloWorld

转载地址:http://miqtl.baihongyu.com/

你可能感兴趣的文章
UML概述
查看>>
PHP 解析 ElasticSearch 的 json 方法,有關遍歷所有 json 元素
查看>>
ListView优化-getView优化
查看>>
Native App, Hybrid App, Web App对比
查看>>
cdn加速原理
查看>>
Firefox 按一下Alt键 出现菜单!
查看>>
毕业设计毕业设计毕业设计
查看>>
zepto中的属性设置
查看>>
Java.Annotations
查看>>
【进阶修炼】——改善C#程序质量(2)
查看>>
上下滑动隐藏显示导航栏
查看>>
oracle复习
查看>>
Eclipse使用多个Console【转】
查看>>
浅谈软件系统的标准化和产品化
查看>>
C++中sizeof操作符与strlen函数
查看>>
常用Maven插件介绍(全)
查看>>
Hibernate工作原理
查看>>
[翻译] 单例(Singleton)
查看>>
触发器
查看>>
两种常用小程序UI组件库
查看>>