maven使用(转载)
一、安装配置:
1、安装配置JDK java/javac -version
2、安装配置maven mvn -v
3、下载项目模板 mvn archetype:generate
二、详解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.smart</groupId>
<artifactId>smart-demo</artifactId>
<version>1.0</version>
<packaging>war</packaging>
<name>smart-demo Maven Webapp</name>
<url>http://maven.apache.org</url>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>3.8.1</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<finalName>smart-demo</finalName>
</build></project>
从上往下简要说明一下:
-
modelVersion:这个是 POM 的版本号,现在都是 4.0.0 的,必须得有,但不需要修改。
-
groupId、artifactId、version:分别表示 Maven 项目的组织名、构件名、版本号,它们三个合起来就是 Maven **坐标,根据这个坐标可以在 Maven 仓库中对应唯一的 **Maven 构件。
-
packaging:表示该项目的打包方式,war 表示打包为 war 文件,默认为 jar,表示打包为 jar 文件。
-
name、url:表示该项目的名称与 URL 地址,意义不大,可以省略。
-
dependencies:定义该项目的依赖关系,其中每一个 dependency 对应一个 Maven 项目,可见 Maven 坐标再次出现,还多了一个 scope,表示作用域(下面会描述)。
-
build:表示与构建相关的配置,这里的 finalName 表示最终构建后的名称 smart-demo.war,这里的 finalName 还可以使用另一种方式来定义(下面会描述)。
可见,除了项目的基本信息(Maven 坐标、打包方式等)以外,每个 pom.xml 都应该包括:
-
Lifecycle(生命周期),包括 9 个 Phase(阶段):clean ,validate ,compile ,test ,package ,verify ,install ,site ,deploy
-
Plugins(插件)
-
Dependencies(依赖)
Scope(作用域),它表示该构件包在什么时候起作用,包括以下五种: compile:默认作用域,在编译、测试、运行时有效 test:对于测试时有效 runtime:对于测试、运行时有效 provided:对于编译、测试时有效,但在运行时无效 system:与 provided 类似,但依赖于系统资源
三、常用命令
-
mvn clean:清空输出目录(即 target 目录)
-
mvn compile:编译源代码
-
mvn package:生成构件包(一般为 jar 包或 war 包)
-
mvn install:将构件包安装到本地仓库
-
mvn deploy:将构件包部署到远程仓库
- 创建Maven的普通java项目:
mvn archetype:generate
-DgroupId=packageName
-DartifactId=projectName - 创建Maven的Web项目:
mvn archetype:generate
-DgroupId=packageName
-DartifactId=webappName
-DarchetypeArtifactId=maven-archetype-webapp - 生成eclipse或idea mvn eclipse:eclipse