1. Maven 核心概念
Maven 坐标
groupId: 定义当前Maven项目隶属项目
artifactId: 定义实际项目中的一个模块
version: 定义当前项目的当前版本
packageing: 定义项目的打包方式
主要的三种依赖配置
1. compile : 默认编译依赖范围, 对于编译,测试,运行三种 classpath都有效
2. test: 测试依赖范围 : 只对测试的classpath有效
3. provided: 已经提供依赖范围: 对于编译, 测试的classpath都有效, 但是对于运行无效
4. runtime: 运行时提供
生命周期之Default
compile 编译项目的源代码
test 使用合适的单元测试框架运行测试, 这些测试不会被打包或部署
package 接受编译好的代码, 打包成可发布的格式, 如 JAR, 默认是JAR
install 将包安装至本地仓库, 以让其项目依赖
deploy 将最终的包复制到远程的仓库, 以让其它开发人员与项目共享
Hello 案例
目录结构:
源码
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.example</groupId>
<artifactId>Hello</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>Hello</name>
<!-- FIXME change it to the project's website -->
<url>http://www.example.com</url>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.7</maven.compiler.source>
<maven.compiler.target>1.7</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
</dependency>
</dependencies>
<build>
<finalName>Hello</finalName>
<pluginManagement><!-- lock down plugins versions to avoid using Maven defaults (may be moved to parent pom) -->
<plugins>
<plugin>
<artifactId>maven-clean-plugin</artifactId>
<version>3.1.0</version>
</plugin>
<!-- see http://maven.apache.org/ref/current/maven-core/default-bindings.html#Plugin_bindings_for_war_packaging -->
<plugin>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.2</version>
</plugin>
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.8.0</version>
</plugin>
<plugin>
<artifactId>maven-surefire-plugin</artifactId>
<version>2.22.1</version>
</plugin>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>3.2.2</version>
</plugin>
<plugin>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
</plugin>
<plugin>
<artifactId>maven-deploy-plugin</artifactId>
<version>2.8.2</version>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
Hello.java
package cn.rjxy.maven;
public class Hello {
public String sayHello(String name){
return "Hello " +name+"!";
}
}
HelloTest.java
package cn.rjxy.maven;
import org.junit.Test;
import static junit.framework.Assert.*;
public class HelloTest{
@Test
public void testHello(){
Hello hello = new Hello();
String results = hello.sayHello("litingwei");
assertEquals("Hello litingwei!" ,results);
}
}
效果图