通过使用maven的生命周期和丰富多样的插件,可以方便的将项目代码编译打包为自己需要的构件。

maven默认项目主代码位置src/main/java目录,测试代码位置src/test/java目录。主代码会被打包到最终构件中。

jar包:mvn package 命令的默认打包类型

maven会假设用户javaapp项目目录如下所示:

  1. 源码:src/main/java/

  2. 资源文件:src/main/resources

  3. 编译输出目录:target/classes/

  4. 包输出目录:target/

maven打jar包有3个比较常用的插件:

maven-jar-plugin为默认打包插件;

maven-shade-plugin可用于打可执行包,需在配置plugin时插入mainClass。

maven-assembly-plugin支持个定制化打包方式。

war包

maven默认web项目的web资源目录为src/main/webapp/,webapp下包含WEB-INF子目录,WEB-INF子目录下包含web.xml文件。

web应用标准打包方式为WAR,一个典型WAR包文件目录结构:

war包至少包含两个子目录:

META-INF——包含打包元数据信息

WEB-INF——包含web.xml/classes/lib,classes和lib在运行时会被加入到classpath中

其他命令:

mvn dependency:list命令:可展示所有已解析依赖

mvn dependency:tree命令:可展示依赖树

maven clean:清理输出目录 target/

maven comple:编译目录主代码,maven核心插件compiler默认只支持java1.3编译

在执行命令行时通过命令行配置插件参数:使用-D参数键=参数值的形式(-D为java自带功能,通过命令行设置java系统属性)

实用maven笔记四-打包&其他的更多相关文章

  1. Java学习笔记四---打包成双击可运行的jar文件

    写笔记四前的脑回路是这样的: 前面的学习笔记二,提到3个环境变量,其中java_home好理解,就是jdk安装路径:classpath指向类文件的搜索路径:path指向可执行程序的搜索路径.这里的类文 ...

  2. 实用maven笔记二-信息&依赖管理

    目前我经历的公司的主要项目管理工具都是maven,maven除了是一个实用的构建工具外,也是一个功能强大的项目管理工具.其管理功能分为信息管理和依赖管理.通过pom.xml文件实现. 信息管理 信息管 ...

  3. 实用maven笔记一概念&构建

    maven,作为我现在每天都会使用的工具,却发现我还有很多地方了解的迷迷糊糊.老大就曾说过我的一个问题在于,做事情不够精细.大概就是太浮于表面吧.最近突然非常想把maven撸一遍.豆瓣搜了下高分书籍, ...

  4. 实用maven笔记三-仓库

    maven管理依赖的一个很重要的基础在于,其维护了收集大量依赖jar包的仓库. maven的仓库分类为本地仓库和远程仓库. 构件在仓库的路径大致为:groupId/artifactId/version ...

  5. Maven将java打包成jar并且运行笔记

    Maven项目打包成jar并且运行笔记 首先创建一个maven项目 运行成功后,有两种方式将项目进行打包. 第一种方式: 在IDEA编辑器中maven项目进行打包: 这里显示jar包中没有主清单属性, ...

  6. Maven学习笔记(四):协调和依赖

    Maven协调具体的解释:      Maven定义了这样一组规则:世界上不论什么一个构件都能够使用Maven坐标唯一标识.Maven坐标的元素包含groupId.artifactId.version ...

  7. 【转】Verilog HDL常用建模方式——《Verilog与数字ASIC设计基础》读书笔记(四)

    Verilog HDL常用建模方式——<Verilog与数字ASIC设计基础>读书笔记(四) Verilog HDL的基本功能之一是描述可综合的硬件逻辑电路.所谓综合(Synthesis) ...

  8. Verilog HDL实用教程笔记

    Verilog HDL实用教程笔记 DRC - Design Rule Check 几何规则检查ERC - Electrical Rule Check 电学规则检查自动参数提取LVS - Logic ...

  9. 官网实例详解-目录和实例简介-keras学习笔记四

    官网实例详解-目录和实例简介-keras学习笔记四 2018-06-11 10:36:18 wyx100 阅读数 4193更多 分类专栏: 人工智能 python 深度学习 keras   版权声明: ...

随机推荐

  1. Prometheus 安装与配置

    下载Prometheus https://prometheus.io/download/ wget https://github.com/prometheus/prometheus/releases/ ...

  2. Java导入

    导入(import)声明用于将任何类型导入编译单元.导入(import)声明出现在包声明之后,第一个类型声明之前. 有两种类型的导入声明: 单类型导入声明 按需导入声明 单类型导入声明 单类型导入声明 ...

  3. java的实用类

    1)   Random类 用于生成随机数字,所有生成的数字,都是等概率的. nextInt():生成的值介于int的所有取值范围(-231 ~ 231-1) nextInt(int value):生成 ...

  4. FZU 1876 JinYueTuan(排列组合)

    Description Let’s have a look at the picture below Now, do you know what it’s? Yeah , O(∩_∩)O~ , It ...

  5. 39.Binary Tree Inorder Traversal(二叉树中序遍历)

    Level:   Medium 题目描述: Given a binary tree, return the inorder traversal of its nodes' values. 思路分析: ...

  6. Aspnetcore下面服务器热更新与配置热加载

    原文:Aspnetcore下面服务器热更新与配置热加载 Asp.net的热更新方案Appdomain在aspnetcore中不被支持了 新的方案如下: 配置文件更新选项 reloadOnChange ...

  7. empty视为空的条件

    /** * empty视为空的条件: * (1)."" (空字符串) * (2).0 (作为整数的0) * (3).0.0 (作为浮点数的0) * (4)."0" ...

  8. 2019-8-30-MSBuild-常用参数

    title author date CreateTime categories MSBuild 常用参数 lindexi 2019-8-30 8:56:5 +0800 2019-07-20 21:56 ...

  9. 转载:java面试题(二)

    这部分主要是开源Java EE框架方面的内容,包括Hibernate.MyBatis.Spring.Spring MVC等,由于Struts 2已经是明日黄花,在这里就不讨论Struts 2的面试题, ...

  10. SSM框架搭建过程

    引入依赖的jar包(pom.xml) a. <!--Spring SpringMVC相关-->  spring-webmvc b. <!--Spring事务-->  sprin ...