maven最主要的命令如下:

  • mvn clean compile:告诉Maven编译项目主代码
  • mvn clean test:执行src/test/main下面的test方法,在执行测试之前,会自动执行项目主资源处理、主代码编译、测试资源处理、测试代码编译等工作
  • mvn clean package:打包,使用默认打包类型jar,在打包前会执行编译、测试等操作。生产的jar文件位于target下面
  • mvn clean install:将项目输入的jar安装到了Maven本地仓库中。

执行顺序

执行test之前会先执行compile,执行package之前会先执行test,执行install之前会执行package。

生成可运行的jar

默认打包生成的jar是不能够直接运行的,因为带有main方法的类信息不会添加到manifest中(打开jar文件中的META-INF/MANIFEST.MF文件,将无法看到Main-Class一行)。为了生成可执行的jar文件,需要借助maven-shade-plugin插件。

<plugin>
<artifactId>maven-shade-plugin</artifactId>
<groupId>org.apache.maven.plugins</groupId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>

在这里可以指定mainClass。然后在target目录下会生成两个jar,一个是代码Main-Class信息的可运行的jar,另一个是原始jar。然后在控制台直接java -jar xxx.jar即可看到输出。

最新文章

  1. centos配置163源
  2. Sharepoint学习笔记—习题系列--70-573习题解析 -(Q97-Q99)
  3. (转) A Survival Guide to a PhD
  4. libpcap/wwinpcap
  5. PHP中的表单提交和获取
  6. win10+ubuntu17.04双系统安装与卸载(uefi+gpt)及常见软件安装
  7. Extending sparklyr to Compute Cost for K-means on YARN Cluster with Spark ML Library
  8. Vue 环境搭建之Hello World
  9. babel-runtime和babel-polyfill两者区别优缺点
  10. 如何定义开发完成?(Definition of Done)
  11. dense prediction问题
  12. 关于Runtime.getRuntime().exec()产生阻塞的2个陷阱
  13. Centos下分布式跟踪工具Pinpoint的完整部署记录
  14. 【2017-2-23】C#switch case分支语句,for循环语句
  15. GUI界面相应事件
  16. ASP入门(十五)- Global.asa
  17. ProcessHelp 进程类(启动,杀掉,查找)
  18. hive一些基本用法
  19. JavaScript Promises 实现框架一览及对比
  20. Android SDK 快速安装方法

热门文章

  1. web.xml配置中的log4jRefreshInterval讲解
  2. 二)quartz.properties
  3. 如何取得nginx做反向代理时的真实IP?
  4. 程序员不常用Linux命令集
  5. Haodoop RPC解析
  6. Delphi 自带的字符串分割函数split
  7. Android-自定义开关
  8. 基于SSH的网上图书商城-JavaWeb项目-有源码
  9. Linux下source文件两种方法
  10. jenkins任务构建失败重试插件Naginator Plugin