Maven-手动创建Maven项目
手动创建Maven项目,了解Maven项目架构 — 约定优于配置
首先创建一个文件夹用来存放项目:
在 D盘根目录下创建一个maven文件夹
D:\\maven
创建第一项目HelloWorld
D:\\maven\\HelloWorld //以下称该路径为项目路径
在项目路径下创建pom.xml文件, 内容如下
<?xml version=”1.0” encoding=”utf-8”?>
同时创建文件夹:
D:\maven\HelloWorld\src\main\java
src\main\java为Maven默认的源代码路径
在编写一个Java类 HelloWorld.java
package com.rogueq.mvnbook.helloworld;
public class HelloWorld {
public String sayHello() \{
return "Hello Maven";
\}
public static void main() \{
System.out.println(new HelloWorld().sayHello());
\}
}
在项目路径下,通过命令行窗口执行 mvn clean compile (需要已安装mvn,并配置了maven环境变量)
此时在项目路径下会生产一个target文件夹, 该文件夹下保存的就是编译后的问题。
测试:
在项目路径下文件文件夹:
D:\maven\HelloWorld\src\test\java
src\test\java为Maven默认的测试代码路径
添加JUnit依赖:
<?xml version=”1.0” encoding=”utf-8”?>
编写测试类HelloWorldTest:
package com.rogueq.mvnbook.helloworld;
import static org.junit.Assert.assertEquals;
import org.junit.Test;
public class HelloWorldTest {
@Test
public void testSayHello() \{
HelloWorld helloWorld = new HelloWorld();
String result = helloWorld.sayHello();
assertEquals("Hello Maven", result);
\}
}
在项目路径下执行 mvn clean test 命令:
maven自动下载junit依赖包(如果本地没有)
测试报告如下:
打包运行:
在项目路径执行 mvn clean package;
在target目录下可以找到打包完的hello-world-1.0-SNAPSHOT.jar文件
安装项目:
在我的电脑上的本地仓库目录是:
D:\Program Files (x86)\apache-maven-3.5.0\repository
此时在maven库中没有当前项目:
在项目路径执行命令mvn clean install;
通过控制台输出,在以下目录可以找到安装好的jar
D:\Program Files (x86)\apache-maven-3.5.0\repository\com\rogueq\mvnbook\hello-world\1.0-SNAPSHOT
虽然HelloWorld类有一个main方法, 但是这样默认打包的jar是不能直接运行的, 因为带有main方法类的信息不会添加到manifest中。此时MANIFEST.MF的内容如下
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: chong
Created-By: Apache Maven 3.5.0
Build-Jdk: 1.8.0_181
为了生成可执行的jar文件, 需要借助maven-shade-plugin, 配置该插件如下:
<?xml version=”1.0” encoding=”utf-8”?>
再次执行mvn clean install 命令, 此时MANIFEST.MF的内容如下
Manifest-Version: 1.0
Archiver-Version: Plexus Archiver
Built-By: chong
Created-By: Apache Maven 3.5.0
Build-Jdk: 1.8.0_181
Main-Class: com.rogueq.mvnbook.helloworld.HelloWorld
备注:MANIFEST.MF 文件位置在 hello-world-1.0-SNAPSHOT.jar 包里面, 可通过压缩工具进行查看
Over!
注:摘取自《Maven实战》
还没有评论,来说两句吧...