关于maven pom文件的packaging属性

前几天在调试源码运行程序的时候,因为将项目中pom文件的packaging属性用错导致源码包无法引入使用而报Bean注入错误,在此进行总结整理记录。

packagingmavenpom.xml中的一个标签,用于指定maven项目的输出格式,也就是打包类型,使用方式为:

<packaging>pom</packaging>

将鼠标放在packaging标签上,按着ctrl键并点击,可以进入到mavenxsd文件中,里面有对packaing标签的描述说明。

  <xs:element name="packaging" minOccurs="0" type="xs:string" default="jar">
<xs:annotation>
<xs:documentation source="version">4.0.0</xs:documentation>
<xs:documentation source="description">
The type of artifact this project produces, for example <code>jar</code>
<code>war</code>
<code>ear</code>
<code>pom</code>.
Plugins can create their own packaging, and
therefore their own packaging types,
so this list does not contain all possible types.
</xs:documentation>
</xs:annotation>
</xs:element>

可以看到packaging标签一共有这么几种打包类型:

  • jar:标准打包格式,支持多个Java文件打包成一个文件
  • warweb项目的标准打包格式,用于Java Web项目打包,支持多个web资源文件打包成一个文件
  • earEnterprise应用程序的标准打包格式,支持多个web模块和EJB模块打包成一个文件。
  • pomproject object model,无法生成实际的文件,我的理解是类似一种项目结构格式,也是maven中的一种打包类型。

default="jar" 表示如果在不指定的情况下,默认是jar的打包方式。

一般在项目中用的比较多的是pomwarjar这三种类型,这里重点说明下pomjar类型的区别和各自的作用。

pom

我查了一些资料,对于pom类型的maven项目的描述都差不多,pom项目只是为了聚合工程或者传递依赖用,可以理解成是多个model合并。是单纯一个用来继承的文件,相当于接口类。

jar

很明显这个类型就会把项目打包为一个jar包,内部调用或者是服务就要使用这种打包方式。

所以当要使用一些不属于当前项目的通用功能类时,可以引入这些jar包进行使用。两个没有关联和传递关系的项目用pom是无法进行引入的。

明确packaging属性的一些内容和概念是为了只有源码调试和框架搭建时更好的发现问题调试问题。虽然概念简单但是不清楚其中的含义就很容易犯一些令人摸不扎头脑的错误。细节决定成败。

[SpringBoot][Maven]关于maven pom文件的packaging属性的更多相关文章

  1. Maven项目中pom文件分析

    pom英文全称: project object model 1.概述 pom.xml文件描述了maven项目的基本信息,比如groupId,artifactId,version等.也可以对maven项 ...

  2. Maven 项目依赖 pom 文件模板

    下面是网上down的 pom 文件模板: <!-- 属性 --> <properties> <spring.version>4.2.4.RELEASE</sp ...

  3. Maven入门-3.pom文件和settings文件

    1.pom.xml文件介绍2.settings.xml文件介绍 1.pom.xml文件介绍 Maven项目的核心是pom.xml,pom(Project Object Model项目对象模型) pom ...

  4. 关于maven导入工程pom文件报错问题及解决

    pom文件头报错 1.导入maven文件,经常遇到表头出错问题.报错:Failure to transfer org.apache.maven.shared:maven-filtering:pom:1 ...

  5. maven导出工程pom文件中依赖的jar包

    在工程的pom文件里加上下面plugin, 然后执行mvn clean package -Dmaven.test.skip=true命令,就可以lib包收集起来了 <plugin> < ...

  6. intellij中maven不能导入pom文件中指定的jar包

    pom文件配置依赖的jar包版本,可以有默认的版本,如下 <profiles> <profile> <id>default_version</id> & ...

  7. Maven项目中在properties 中使用 ${} 来引用pom文件中的属性

    比如在pom文件中定义了属性如下: <jdbc.host.global>127.0.0.1</jdbc.host.global> <jdbc.databasename.g ...

  8. springBoot 2.1.5 pom 文件 unknown 错误

    插件不兼容 pom文件添加 <properties>    <maven-jar-plugin.version>2.6</maven-jar-plugin.version ...

  9. 什么是maven?maven中的pom文件是做什么的?

    Maven 是专门用于构建和管理Java相关项目的管理工具. 1.使用Maven管理的Java 项目都有着相同的项目结构 2.统一维护jar包 POM是项目对象模型(Project Object Mo ...

  10. eclipse导入maven时,pom文件的project一直报错(Failure to transfer org.apache.maven.plugins:maven-surefire-plugin:pom:2.12.)

    这里有两种解决办法. 一:右键项目->maven->update project勾选上Force Update of Snapshots/Releases然后ok就可以了. 二:如果第一种 ...

随机推荐

  1. freeswitch的mod_xml_curl模块

    概述 freeswitch是一款简单好用的VOIP开源软交换平台. 随着fs服务的增多,每一台fs都需要在后台单独配置,耗时耗力,心力憔悴. 如果有一个集中管理配置的配置中心,统一管理所有fs的配置, ...

  2. freeswitch新增模块APP

    概述 之前的文章中,我们讲解了freeswitch的源码基本结构,如何新增一个插件式模块,以及如何在模块中新增一个命令式API接口. freeswitch的架构非常适合这种业务开发模式,即以frees ...

  3. 大数相加 a+b

    #include<stdio.h> #include<string.h> #include<stdlib.h> #include<ctype.h> #i ...

  4. Jinfo 查看 jvm 配置及使用 Jstat 查看堆内存使用与垃圾回收

    本文为博主远传,未经允许不得转载: 1. Jinfo 查看正在运行的Java应用程序的扩展参数: 包含 JVM 参数与 java 系统参数 命令:  jinfo pid 2. 使用 jstat 查看堆 ...

  5. 在Vue中可以使用方括号法获得想要的对象数据吗?

    1.问题 Document {{message}} {{school.name}}{{school[mobile]}} 在这里 {{school.name}}{{school[mobile]}} 不可 ...

  6. [转帖]shell脚本实现文本内容比较交互程序

    背景介绍 脚本基于Comm命令进行功能封装,考虑到命令执行前需要对文本进行排序,并且在多文件需要比较内容时可能会导致多个文本混乱,因此使用Shell封装成了一个交互式程序,快速对文件内容进行判断和输出 ...

  7. [转帖]jmeter命令大全(命令行模式)

    jmeter命令 --? 打印命令行选项并退出 -h. --帮助 打印使用信息和退出 -v. --版本 打印版本信息并退出 -p. --propfile<argument> 要使用的jme ...

  8. 【转帖】Linux性能优化(十三)——CPU性能测试

    一.CPU上下文切换测试场景 使用sysbench模拟多线程调度: sysbench --threads=10 --time=300 threads run 使用vmstat查看CPU上下文切换: c ...

  9. [转帖]人脸特征计算速度优化-SIMD技术Neon介绍

    人脸特征计算速度优化-SIMD技术Neon介绍 JasonZhu 游走于秃头和研究的边缘 ​关注   15 人赞同了该文章 ​ 目录 收起 1. baseline计算 2. simd和数据重排加速 数 ...

  10. [转帖] jq实现json文本对比

      原创:打码日记(微信公众号ID:codelogs),欢迎分享,转载请保留出处. 简介# 近期,为了给一个核心系统减负,组内决定将一些调用量大的查询接口迁移到另一个系统,由于接口逻辑比较复杂,为了保 ...