(三)Maven使用入门之Hello World

主要内容

  • 编写POM
  • 编写主代码
  • 编写测试代码
  • 打包和运行

 

  到目前为止,已经大概了解并安装好了Maven,现在开始创建一个最简单的HelloWorld项目。


编写POM

  就像Make的Makefile、Ant的build.xml一样,Maven项目的核心是pom.xml。POM(Project Object Model,项目对象模型)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等等。

  现在先为HelloWorld项目编写一个最简单的pom.xml。

  首先创建一个名为helloworld的文件夹,打开该文件夹,新建一个名为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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
 4     <modelVersion>4.0.0</modelVersion>
 5 
 6     <groupId>com.chd.work</groupId>
 7     <artifactId>helloworld</artifactId>
 8     <version>1.0-SNAPSHOT</version>
 9     <packaging>jar</packaging>
10     <name>Maven Hello World Project</name>
11 
12     <properties>
13         <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
14     </properties>
15 
16     <build>
17         <plugins>
18             <plugin>
19                 <groupId>org.apache.maven.plugins</groupId>
20                 <artifactId>maven-compiler-plugin</artifactId>
21                 <version>3.7.0</version>
22                 <configuration>
23                     <source>1.9</source>
24                     <target>1.9</target>
25                     <encoding>UTF-8</encoding>
26                 </configuration>
27             </plugin>
28             <plugin>
29                 <groupId>org.apache.maven.plugins</groupId>
30                 <artifactId>maven-shade-plugin</artifactId>
31                 <version>3.1.0</version>
32                 <executions>
33                     <execution>
34                         <phase>package</phase>
35                         <goals>
36                             <goal>shade</goal>
37                         </goals>
38                         <configuration>
39                             <transformers>
40                                 <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
41                                     <mainClass>com.chd.work.helloworld.HelloWorld</mainClass>
42                                 </transformer>
43                             </transformers>
44                         </configuration>
45                     </execution>
46                 </executions>
47             </plugin>
48         </plugins>
49     </build>
50 </project>

简要介绍一下pom.xml中的内容:

  project是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,虽然这些属性不是必须的,但使用这些属性能够让第三方工具(如IDE中的xml编辑器)帮助我们快速编辑POM。

  根元素下面的第一个子元素modelVersion指定了当前POM模型的版本,对于Maven3来说,它只能是4.0.0。

  这段代码中最重要的是包含groupId、artifactId和version的三行。这三个元素定义了一个项目基本的坐标,在Maven的世界,任何的jar、pom或者war都是以基于这些基本的坐标进行区分的。

  groupId定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp。

  artifactId定义了当前Maven项目在组中唯一的ID,我们为这个Hello World项目定义artifactId为helloworld。

  version指定了Hello World项目当前的版本——1.0SNAPSHOT。SNAPSHOT意为快照,说明该项目还处于开发中,是不稳定的版本。

  name元素声明了一个对用户更为友好的项目名称,虽然这不是必须的,但还是推荐为每个POM声明name,以方便信息交流。

 

编写主代码

  默认情况下,Maven假设项目主代码位于src/main/java目录,我们在该目录下创建文件com/chd/work/helloworld/HelloWorld.java,其内容如下所示:

 1 package com.chd.work.helloworld;
 2 
 3 public class HelloWorld {
 4     public String sayHello() {
 5         return "Hello Maven!";
 6     }
 7 
 8     public static void main(String[] args) {
 9         System.out.println(new HelloWorld().sayHello());
10     }
11 }

  代码编写完毕后,使用Maven进行编译,在项目根目录下运行命令mvn clean compile,得到输出。clean告诉Maven清理输出目录target/,compile告诉Maven编译项目主代码,将项目主代码编译至target/classes目录(编译好的类为com/chd/work/helloworld/HelloWorld.class。

  至此,Maven在没有任何额外的配置的情况下就执行了项目的清理和编译任务。

 

打包和运行

  简单地执行命令mvn clean package进行打包,Maven在打包之前会执行编译、测试等操作,得到helloworld-1.0-SNAPSHOT.jar文件。

  如果想要其他的Maven项目直接引用这个jar文件,还需要一个安装的步骤。执行mvn clean install,在打包之后,又执行安装任务,将该项目输出的jar安装到了本地Maven仓库中。可以打开相应的文件夹看到Hello World项目的pom和jar。

posted @ 2018-02-03 23:31  zhangcd  阅读(571)  评论(0编辑  收藏  举报