第一个Maven案例Hello Maven
2024-09-04 13:25:31
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
最新文章
- Android之文件数据存储
- jS事件之网站常用效果汇总
- lk启动流程详细分析
- 辗转相除法求最大公约数和最小公倍数【gcd】
- list、set、map以及array的区别
- Azure ARM虚拟机部署反恶意软件-安全扩展
- alibaba架包FastJson使用例子
- LOJ #10130 点的距离
- java效率取随机不重复数
- ACM-ICPC 2018 沈阳赛区网络预赛 G. Spare Tire
- HTML中的转义字符 (转)
- Python对象(上)
- sprint2(第二天)
- 未在本地计算机上注册";Microsoft.Jet.OLEDB.4.0";
- 创芯Xilinx Microblaze 学习系列第一集
- anaconda创建python虚拟环境
- 高阶篇:6)设计评审Design reviews;
- FPGA代码一位半加器入门-第2篇
- Struts提交form之后抛出异常java.lang.IllegalArgumentException: The path of an ForwardConfig cannot be null
- 系列文章--WCF后传学习文章
热门文章
- IOS -刷帧动画(CADisplayLink)
- Missing map from Nullable`1 to String. Create using Mapper.CreateMap<;Nullable`1, String>;. 解决办法
- python_70_内置函数2
- css布局:块级元素的居中
- JZTK项目 驾照题库项目servlet层得到的json字符串在浏览器中 汉字部分出现问号?无法正常显示的解决方法
- 关于java中异常机制
- 微信小游戏 demo 飞机大战 代码分析 (三)(spirit.js, animation.js)
- react与微信小程序
- matplotlib(一)——matplotlib横轴坐标密集字符覆盖
- 本地Navicat连接虚拟机MySQL