maven pom.xml配置文件中的packaging标签

项目的打包类型:pom、jar、war

指定打包类型使用<packing>标签,它默认是jar类型。

  • pom:父类型都为pom类型
<packaging>pom</packaging>
  • jar:内部调用或者是作服务使用
<packaging>jar</packaging>
  • war:打包项目,用于在容器(Tomcat、Jetty等)上部署
<packaging>war</packaging>  

举个打包类型为pom的例子:

项目目录结构如下:

~/Desktop$ tree -L 4
├── MyProject
│   ├── pom.xml
│   ├── SubProject1
│   │   └── pom.xml
│   ├── SubProject2
│   │   └── pom.xml
│   └── SubProject3
│       └── pom.xml
...

MyProject下面有三个模块项目SubProject1、SubProject2、SubProject3。那么我们可以将三个模块项目的公共部分,写在MyProject项目的pom.xml文件上,然后在模块项目的pom.xml中来继承它,这样模块项目就可以用到公共部分的东西。MyProject项目的pom.xml就是我们的所说的父类型,它的打包类型要写成pom,如:

<project ...>
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.wong.tech</groupId>
  <artifactId>myproject</artifactId>
  <packaging>pom</packaging>
  <version>1.0.0</version>
  <name>myproject</name>
  <url>http://maven.apache.org</url>
  <!--模块(有时称作子项目) 被构建成项目的一部分。列出的每个模块元素是指向该模块的目录的相对路径 -->
  <modules>
        <module>SubProject1</module>
        <module>SubProject2</module>
        <module>SubProject3</module>
  </modules>
 ...
  </project>

在MyProject下的pom.xml通过<modules>标签指定了子项目的相对路径。这就可以直接在MyProject项目里执行mvn命令,一次构建全部模块。当然,到每个模块的目录下执行mvn命令,逐个构建也是没问题的。

在分模块(子项目)下的pom.xml通过<parent>标签继承MyProject下的pom.xml即可,如SubProject1子项目的pom.xml:

<project
        xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"
        xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
        <modelVersion>4.0.0</modelVersion>
        <artifactId>myproject-subproject1</artifactId>
        <packaging>jar</packaging>
        <name>myproject-subproject1</name>
        <version>1.0.0</version>
        <url>http://maven.apache.org</url>
        <parent>
                <groupId>com.wong.tech</groupId>
                <artifactId>myproject</artifactId>
                <version>1.0</version>
                <relativePath>../pom.xml</relativePath>
        </parent>
        ...
</project>


其他的子项目依此类推。

谢谢阅读。

  • 12
    点赞
  • 41
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
1.[今日课程内容总览] Maven--***** 介绍 优点 用maven创建一个项目, 用maven创建一个ssm项目,每一层的代码分开,把一个项目拆解成多个项目 2.[今日包含笔记] maven介绍: Eclise: 缺点: Jar包: 版本管理,解决jar包冲突:删除老的jar包,保留新的jar包 不同的项目,jar包要复制一份;Users Library 羡慕yum的好处,安装软件,自动下载,自动验证,自动安装,自动测试;镜像网站 Jar包的依赖: 致命的缺点:现象: 每一个项目都有前台(广大网民)和后台(管理员看的),后台的功能远远的大于>前台的功能;迭代升级;每次升级都要重启tomcat;将tomcat做很多个备份(10个),为了nginx转发;前台:访问比较大,管理员访问量比较小; 问题: 每次升级,10个tomcat都升级一次 后台的升级频繁要比前台频繁;升级10次,9次改的是后台的代码,只有一次是前台的代码 解决方案: 是将前台(广大网民看的页面)的代码和后台(管理员)的代码要分开,将原来的一个项目分别放到两个web项目;一个web项目一个tomcat;好处:更新的时候如果更新后台(管理员),只需要重启后台的tomcat(服务); 折成两个项目以后的缺点:Service以下的代码重复; 将Service层以下的代码放到一个新创建的java项目,在部署的时候将Service(java项目)打成一个jar包,分别放到两个web服务;编译的时候让web项目依赖与Service(java项目)_source folder;配置麻烦,项目与项目之间的依赖头脑得相当清晰 这个缺点Maven解决了; 请听今天的内容 拆分前:图一 拆分后是图二 3. 介绍 官网:http://maven.apache.org/download.cgi 目录介绍: Bin:二进制文件 Boot:引导,启动 Conf:配置文件 Lib:jar包 README.txt:读我 3.1.修改配置文件的内容 路径:%MAVEN_HOME%\conf\settings.xml 配置文件代码: d:/repo alimaven aliyun maven http://maven.aliyun.com/nexus/content/groups/public/ central 注意: 千万不要将文档的setting的内容全部替换到maven的内容,要对比着修改,保留原来的; 只修改本地仓库,和下载镜像(源) 3.2.Eclipse Maven的配置 每打开一个新的工作空间,要配置一下Maven,然后再写代码 3.3.创建Maven项目 右击创建一个maven project Packing:有三种: Jar:java项目, War:web项目 Pom:文件夹,jar和war文件,mavenProject:一个项目,可以放jar和war包,通过pom,一般新创建的maven Project是POM 3.4.创建一个Maven Model 最外面的项目是MavenProject,其它的全部是Maven Model 3.4.1.创建JAR 目录介绍: Mvn-jar |-->Src:源码:java代码 |-->|-->main:代码:除测试以外的代码:junit |-->|-->main|-->java:代码 |-->|-->main|--
Facebook-oss-pom 是一个基于 POM 的部署在 oss.sonatype.org 上的facebook 上开源项目。它可以任随意调用任何基于 POM 的新项目而不用进行二次编辑修改。Facebook OSS POM 平台致力于通过 Maven央资源库来建立不同的组件和开发包。示例:<?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/xsd/maven-4.0.0.xsd">   <modelVersion>4.0.0</modelVersion>   <parent>     <groupId>com.facebook</groupId>     <artifactId>facebook-oss-pom</artifactId>     <version> ... current version ...</version>   </parent>   <groupId> ... group id of the new project ... </groupId>   <artifactId> ... artifact id of the new project ... </artifactId>   <version> ... version of the new project ... </version>   <packaging> ... jar|pom ... </packaging>   <description> ... description of the new project ...  </description>   <name>${project.artifactId}</name>   <inceptionYear>2013</inceptionYear>   <scm>     <connection> ... scm read only connection ... </connection>     <developerConnection>... scm read write connection ... </developerConnection>     <url> ... project url ... </url>   </scm>   <distributionManagement/>   <developers/>   <organization/>   ... </project> 标签:Facebook
回答: Mavenpom.xml是一个项目对象模型(Project Object Model)文件,它是用来描述和配置Maven项目的。在pom.xml文件,你可以设置项目的基本信息,如groupId、artifactId、version等,还可以定义项目的依赖关系、构建配置、插件等。\[3\]其,groupId是组织标识,通常是公司域名;artifactId是项目名称;version是版本号;description是项目的描述信息;packaging是打包的格式,可以是pom、jar、war等等。\[3\]通过配置pom.xml文件,你可以管理项目的依赖关系,构建过程和生成文档等。如果你想生成项目的文档,你可以使用javadoc插件来生成文档,具体的使用方法可以参考Maven官方文档的相关说明。\[1\] #### 引用[.reference_title] - *1* *2* [解析Maven pom.xml的plugin](https://blog.csdn.net/weixin_39278265/article/details/111873055)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v88^control_2,239^v2^insert_chatgpt"}} ] [.reference_item] - *3* [Maven pom.xml 文件格式详解一](https://blog.csdn.net/wangmx1993328/article/details/112429789)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v88^control_2,239^v2^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值