摘要:先创建一个项目选择填写相关配置和和这三个元素定义了一个项目的基本坐标,在的世界,任何的或者都是基于这些基本的坐标区分的。编写单元测试编译完成后,我们要开始测试了,创建的项目已经集成了的依赖了,如果没有,可以自己手动添加后再执行。
先创建一个maven项目:
选择quikcstart:
填写相关配置
gruop id 和 artifact id 和version这三个元素定义了一个项目的基本坐标,在Maven的世界,任何的jar,pom或者war都是基于这些基本的坐标区分的。
Group Id:定义项目组
Artifact Id:定义了当前项目组中唯一的id
Version:顾名思义,指定当前的版本
生成的maven项目和pom.xml
接下来修改一下app.java的代码
![clipboard.png](/img/bV9ApR) package com.will.hello_world; /** * Hello world! * */ public class App { public static void main( String[] args ) { System.out.println( new App().sayHello() ); } public String sayHello(){ return "Hello Maven!"; } }
此时,target目录下还是空的。
当我们右键项目,点击debug as -> maven clean,控制台会输出以下内容,这告诉我们,clean动作,maven会先清理输出目录target,即删除该目录。
此时,右键Pom.xml选择run as->maven build
goals输入compile,然后点击run,控制台此时会打出
说明maven已经执行了编译任务,并且把编译后的class文件放在了工作空间指定工作目录后的target目录下。
编写单元测试
编译完成后,我们要开始测试了,创建的maven项目已经集成了junit的依赖了,如果没有,可以自己手动添加后再执行maven update。
4.0.0 com.will hello-world 0.0.1-SNAPSHOT jar hello-world http://maven.apache.org UTF-8 junit junit 3.8.1 test
上述pom代码中还有scope属性,如果scope属性为test,表示该依赖只对测试有效。如果不声明依赖,那么该依赖对主代码和测试都有效。
有了测试依赖,就可以开始编写测试类了,在src/test/java目录下编写测试类
完成测试用例后,点击maven test,控制台输出以下内容,失败和警告都为0,说明我们的测试通过了。
打包和运行
将项目进行编译和测试之后,下一个重要步骤就是打包了,pom中没有指定打包的类型,使用默认的打包类型jar。
点击maven build->goals中填写package,点击run,eclipse就会帮我们进行打包了。
类似的,执行打包前,maven会自动的帮我们执行编译、测试等操作,可以看到,此时,我们已经将该项目打包成了hello-world-0.0.1-SNAPSHOT.jar的Jar包了,如果有需要的话,就可以复制这个Jar文件到其他项目的classpath文件中使用这个helloworld类了。
又或者你想在本地的其他maven项目中使用这个jar文件,此时你还需要执行一步操作,maven install,该指令会将输出的jar包安装到你本地的maven仓库中,其他maven项目就可以使用了。
运行jar文件
此时,我们在jar包所在的文件夹执行java -jar jar包名
报了如下错误
因为我们生成的jar包中是带有main方法的,带有main方法的类信息不会添加到mainfest中(可以使用解压工具查看Jar包)
此时我们可以用maven-shade-plugin插件,在pom.xml中添加如下代码
org.apache.maven.plugins maven-shade-plugin 2.4.1 package shade com.will.hello_world.App
再重新执行maven clean和maven build 选择package命令,在target目录下新增了一个jar包带有shade后缀,
此时执行java -jar x.jar
执行成功!
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/69251.html
摘要:在之前,十个项目可能有十种构建方式,但通过,所有项目的构建命令都是简单一致的。有利于促进项目团队的标准化。手工劳动往往意味着低效,意味着容易出错。这在很大程度上消除了重复。默认情况下,该文件夹下放置了本地仓库。学习实战许晓斌著 Introduction Maven是一个异常强大的构建工具,能够帮我们自动化构建过程,从清理、编译、测试到生成报告,再到打包和部署。通过Maven,我们只需要...
摘要:项目构建基础从属于笔者的现代开发基础系列文章,介绍了的历史背景与多种构建工具对比,以及的基本配置安装与使用本文涉及的参考资料声明在学习与实践资料索引以及学习与资料索引。 Maven 项目构建基础从属于笔者的现代 Java 开发基础系列文章,介绍了 Maven 的历史背景与多种构建工具对比,以及 Maven 的基本配置安装与使用;本文涉及的参考资料声明在 Java 学习与实践资料索引以及...
摘要:重度强迫症患者取消大小写敏感,让自动完成更齐全。如何为当前项目工程添加多个模块啊答对着工程右键选择通常选择,如图写在最后欢迎关注喜欢和点赞后续将推出更多的工具集教程,敬请期待。公众号回复面试,领取面试实战学习资源。 showImg(https://segmentfault.com/img/remote/1460000018862588); 前言:IntelliJ IDEA 如果说Int...
摘要:会警告该插件未签名。以上命令告诉创建一个名为的项目,使用包。的工具使从部署应用非常方便。域名构成了分配给应用的的一部分。这将为我们创建一个应用容器,自动配置和。同时将创建一个私有的仓库并克隆到本地。 编者注:我们发现了有趣的系列文章《30天学习30种新技术》,正在翻译,一天一篇更新,年终礼包。下面是第 17 天的内容。 今天的30天学习30种新技术挑战,我决定学习一下JBoss ...
阅读 1376·2021-10-08 10:04
阅读 2680·2021-09-22 15:23
阅读 2724·2021-09-04 16:40
阅读 1172·2019-08-29 17:29
阅读 1492·2019-08-29 17:28
阅读 2987·2019-08-29 14:02
阅读 2220·2019-08-29 13:18
阅读 838·2019-08-23 18:35