第一个Maven案例Hello Maven
Maven目录结构
src:程序源代码
-main
-java:java代码
-package:自定义的包
-resources:存放资源文件
-webapp:如果是web工程的话,还需要这个文件夹
-WEB-INF:class文件
-test:测试代码
-java
-package
一个比较原始的写法,就是使用纯文本编辑器,按照maven约定好的目录,进行创建
当然,我会使用IDEA进行工程的创建
这里为了演示使用,我会首先创建一个空的maven工程,IDEA会根据maven约定创建基本的目录结构
如果有哪个文件夹没有创建,则可以自己创建
java工程的
目录结构如下
编写源代码:
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\src\main\java\com\imooc\maven01\model\HelloWorld.java
package com.imooc.maven01.model;
/**
* 测试 HelloWorld
* Created by sherry on 2015/10/21 0021 22:37.
*/
publicclassHelloWorld{
/**
* Hello World
* @return
*/
publicString sayHello(){
return"Hello World!";
}
}
编写POM文件
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<projectxmlns="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.zln.test</groupId>
<artifactId>HelloWorld</artifactId>
<packaging>pom</packaging>
<version>1.0-SNAPSHOT</version>
<!--导入依赖-->
<dependencies>
<!--junit依赖-->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
<!--指定文件编码-->
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>
<build>
<plugins>
<plugin>
<!--配置jdk编译版本-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.0.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
<plugin>
<!--源代码打包-->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<version>2.4</version>
<executions>
<execution>
<!--指定运行source的阶段-->
<phase>package</phase>
<!--目标-->
<goals>
<goal>jar-no-fork</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
执行编译编码
进入到POM所在的路径,也就是项目的根路径
执行:mvn compile
自动创建如下目录,并生成class文件
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\target\classes\com\imooc\maven01\model\HelloWorld.class
编译过程中的日志信息如下:
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven>mvn compile
[INFO]Scanningfor projects...
[INFO]
[INFO]------------------------------------------------------------------------
[INFO]Building maven01-model 1.0-SNAPSHOT
[INFO]------------------------------------------------------------------------
[INFO]
[INFO]--- maven-resources-plugin:2.6:resources (default-resources)@ maven01-model ---
[INFO]Using'UTF-8' encoding to copy filtered resources.
[INFO]Copying0 resource
[INFO]
[INFO]--- maven-compiler-plugin:2.5.1:compile (default-compile)@ maven01-model ---
[INFO]Nothing to compile - all classes are up to date
[INFO]------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO]------------------------------------------------------------------------
[INFO]Total time:1.080s
[INFO]Finished at:WedOct2122:56:29 CST 2015
[INFO]FinalMemory:6M/184M
[INFO]------------------------------------------------------------------------
编写测试代码
D:\GitHub\JavaWeb\Web\S2S3H3I2\HelloMaven\src\test\java\com\imooc\maven01\model\HelloWorldTest.java
package com.imooc.maven01.model;
import org.junit.*;
import org.junit.Assert.*;
publicclassHelloWorldTest{
@Test
publicvoid testSayHello()throwsException{
Assert.assertEquals("Hello World!",newHelloWorld().sayHello());
}
}
执行测试命令
mvn test
打包
mvn package