Maven_入门
来源:互联网 发布:大王卡 知乎 编辑:程序博客网 时间:2024/06/07 12:41
编写POM
Maven的核心是pom.xml,POM(Project Object Model)定义了项目的基本信息,用于描述项目如何构建,声明项目依赖等。
创建hello-world文件夹,在其内建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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ran.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven laborMkt Project</name>
</project>
注:project是所有pom.xml的根元素
modelVersion指定了当前POM模板的版本,对于Maven2和Maven3来说,它只能是4.0.0
groupId定义了项目属于哪个组,这个组往往和所在组织和公司有关
artifactId定义了当前Maven项目在组中的唯一ID
version指定了HelloWorld项目当前的版本
编写主代码
src/main/java目录下
package com.ran.mvnbook.helloworld;
public class HelloWorld{
public String sayHello(){
return "hello maven";
}
public static void main(String[] args){
System.out.println(new HelloWorld().sayHello());
}
}
项目根目录下运行命令 mvn clean compile
clean 告诉Maven清理输出目录target/,默认情况下,Maven构建的所有输出都在target目录中,compile告诉Maven编译项目主代码
编写测试代码
src/test/java目录下
package com.ran.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);
}
}
修改POM代码,增添Junit依赖
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ran.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven laborMkt Project</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
</project>
执行测试,运行 mvn clean test
打包和运行
打包运行mvn clean package
不过这种包为不可执行包需修改POM,增添maven-shade-plugin
<?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/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ran.mvnbook</groupId>
<artifactId>hello-world</artifactId>
<version>1.0-SNAPSHOT</version>
<name>Maven laborMkt Project</name>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals><goal>shade</goal></goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.ran.labor.helloworld.HelloWorld</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
再次运行mvn clean package
target下有两个jar包hello-world-1.0-SNAPSHOT.jar和original-hello-world-1.0-SNAPSHOT.jar,前者是带有Main-Class信息的可运行jar,后者为原始jar
运行java -jar hello-world-1.0-SNAPSHOT.jar 控制台输出hello maven
成功!
- Maven_入门
- maven_常用命令
- maven_安装
- MAVEN_生命周期
- Maven_基础
- Maven_学习maven的使用,看到一篇很实用的入门教程(菜鸟级入门)
- maven_部署工程到私服
- maven_包丢失
- maven_学习笔记
- maven_仓库详解
- Maven_中文编码问题
- MAVEN_依赖管理
- Maven_使用和注意事项
- maven_如何导包
- maven_添加memcached-java-client
- Maven_生成项目站点报告
- MAVEN_下载、设置以及简介
- Maven_插件和私服
- Java_ftp_ftpclient下载文件
- NODE.JS async异步调用之串行化调用
- Js_获取当前对象大小及屏幕分辨率等
- 机器学习----支持向量机(软间隔与正则化)
- maven_安装
- Maven_入门
- org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)
- unit 5
- 考研英语前缀总结·十五
- JUnit_断言
- RSA 公钥加密算法
- sublime python环境(代码自动补全,调试python脚本等插件)
- Can't use Subversion command line client: svn Probably the path to Subversion executable is wrong. F
- s3c2440启动过程分析