【Maven】Maven的简单使用

POM.XML文件

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

一个基本的POM.XML文件如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<groupId>com.juvenxu.mvnbook</groupId>
	<artifactId>hello-world</artifactId>
	<name>Maven Hello World Projects</name>
	<version>1.0-SNAPSHOT</version>
	<description><span style="font-family: Arial, Helvetica, sans-serif;">Hello World Projects</span><span style="font-family: Arial, Helvetica, sans-serif;"></description></span>
</project>

  • <project>是所有pom.xml的根元素,它还声明了一些POM相关的命名空间及xsd元素,这些元素不是必须的。
  • 根元素下的子元素<modelVersion>指定了当前POM模型的版本,对于Maven2及Maven3来说,它只能是4.0.0
  • <groupId><artifactId><version>这三个元素定义了一个项目基本的坐标,在Maven中,任何的jar,pom或者war都是以基于这些基本的坐标进行区分的。
  • <groupId>定义了项目属于哪个组,这个组往往和项目所在的组织或公司存在关联。譬如在googlecode上建立一个名为myapp的项目,那么groupId就应该是com.googlecode.myapp,如果你的公司是mycom,有一个项目为myapp,那么groupId就应该是com.mycom.myapp。
  • <artifactId>定义了当前Maven项目在组中唯一的ID。在前面的groupId为com.googlecode.myapp的例子中,可能会为不同的子项目(模块)分配不同的artifactId,如myapp-util,myapp-domain,mmyapp-web等。
  • <version>制定了当前项目的版本。
  • <name>元素声明了一个对于用户更为友好的项目名称,但这不是必须的。

主代码

项目的主代码和测试代码不同。主代码会被打包到最终的构件(如jar)中,而测试代码只在运行测试时用到,不会被打包。

默认情况下,Maven假设项目主代码位于src/main/java目录

例如,在该目录下创建文件com/juvenxu/mvnbook/helloworld/HelloWorld.java,代码如下:

package com.juvenxu.mvnbook.helloworld;

public class HelloWorld{
    
}

在绝大多数情况下,应该把项目主代码放到src/main/java目录下,而无需额外的配置,Maven会自动搜寻该目录找到主代码。另外来说,项目中Java类的包名都应该基于项目的groupId和artifactId。

代码编写完毕后,使用Maven进行编译,在项目根目录下运行命令mvn clean compile。

clearn告诉Maven清理输出目录target/

compile告诉Maven编译项目主代码

Maven首先执行了clean:clean任务,删除target/目录。(默认情况下,Maven构建的所有输出都在target/目录中);接着执行resource:resource任务;最后执行compiler:compile任务,将项目主代码编译至target/classes目录。


测试代码

主代码与测试代码应该分别位于独立的目录中。Maven项目中默认的主代码目录是src/main/java,对应地,Maven项目中默认的测试代码目录是src/test/java


打包和运行

将项目编译,测试之后,下一个重要步骤就是打包。默认打包类型是jar,命令mvn clean package:

Maven会在打包之前执行编译,测试等操作。jar任务负责打包,实际上就是jar插件的jar目标将项目主代码打包成一个名为hello-world-1.0-SNAPSHOT.jar的文件.该文件也位于target/输出目录中,它是根据artifactID-version.jar规则进行命名的,如有需要,还可以使用finalName自定义该文件的名称。

执行mvn clean install:

在打包之后,又执行了安装任务install:install。该任务将项目输出的jar安装到了Maven本地仓库中。

为了生成可执行的jar文件,需要借助maven-shade-plugin。


m2eclipse

导入Maven项目

File > Import > Maven > 存在的项目。pom.xml永远在项目的根目录下。

创建Maven项目


运行mvn命令

在Maven项目或者pom.xml上右击,在弹出快捷菜单中选择Maven命令。

可自定义命令。







你可能感兴趣的:(maven)