热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

MavenPom文件详解

Pom全称ProjectObjectModel(工程对象模型)。Pom文件是Maven运行的基础,其中详细描述了一些详细的工程配置信息。

Pom全称Project Object Model(工程对象模型)。Pom文件是Maven运行的基础,其中详细描述了一些详细的工程配置信息。


Pom文件分类


默认Pom文件内容

4.0.0centralCentral Repositoryhttps://repo.maven.apache.org/maven2defaultfalsecentralCentral Repositoryhttps://repo.maven.apache.org/maven2defaultfalsenever${project.basedir}/target${project.build.directory}/classes${project.artifactId}-${project.version}${project.build.directory}/test-classes${project.basedir}/src/main/java${project.basedir}/src/test/java${project.basedir}/src/main/resources${project.basedir}/src/test/resourcesmaven-antrun-plugin1.3maven-assembly-plugin2.2-beta-5maven-dependency-plugin2.8maven-release-plugin2.5.3${project.build.directory}/siterelease-profileperformReleasetruetruemaven-source-pluginattach-sourcesjar-no-forktruemaven-javadoc-pluginattach-javadocsjartruemaven-deploy-plugintrue

最小规格Pom文件

4.0.0com.mycompany.appmy-app1


子工程继承父工程pom配置值

|-- my-module| `-- pom.xml`-- pom.xml

子pom文件内容

4.0.0com.mycompany.appmy-app1com.mycompany.appmy-module1

Noting:


子pom文件中的version、groupId等属性可以从父目录的pom文件中继承。

因此,子pom文件中的version、groupId标签可以删除,默认继承父级pom文件中的配置。



项目聚合Pom

父子目录结构如下

|-- my-module| `-- pom.xml`-- parent`-- pom.xml

父级pom指定子模块pom文件位置:

4.0.0com.mycompany.appmy-app1pom../my-module

子pom文件配置指定父pom文件位置:

4.0.0com.mycompany.appmy-app1../parent/pom.xmlmy-module

Noting:通过relativePath标签指定子pom文件相对父pom文件所在位置。



Pom文件中定义共用变量

通过占位符${project.version}获取实际值。


pom中定义属性:

3.0

pom中通过占位符获取属性值:

org.apache.mavenmaven-core${mavenVersion}

通过占位符直接获取项目配置:

${project.groupId},
${project.version},
${project.build.sourceDirectory}


推荐阅读
  • 为了在Hadoop 2.7.2中实现对Snappy压缩和解压功能的原生支持,本文详细介绍了如何重新编译Hadoop源代码,并优化其Native编译过程。通过这一优化,可以显著提升数据处理的效率和性能。此外,还探讨了编译过程中可能遇到的问题及其解决方案,为用户提供了一套完整的操作指南。 ... [详细]
  • Squaretest:自动生成功能测试代码的高效插件
    本文将介绍一款名为Squaretest的高效插件,该工具能够自动生成功能测试代码。使用这款插件的主要原因是公司近期加强了代码质量的管控,对各项目进行了严格的单元测试评估。Squaretest不仅提高了测试代码的生成效率,还显著提升了代码的质量和可靠性。 ... [详细]
  • 今天我开始学习Flutter,并在Android Studio 3.5.3中创建了一个新的Flutter项目。然而,在首次尝试运行时遇到了问题,Gradle任务 `assembleDebug` 执行失败,退出状态码为1。经过初步排查,发现可能是由于依赖项配置不当或Gradle版本不兼容导致的。为了解决这个问题,我计划检查项目的 `build.gradle` 文件,确保所有依赖项和插件版本都符合要求,并尝试更新Gradle版本。此外,还将验证环境变量配置是否正确,以确保开发环境的稳定性。 ... [详细]
  • 本文探讨了资源访问的学习路径与方法,旨在帮助学习者更高效地获取和利用各类资源。通过分析不同资源的特点和应用场景,提出了多种实用的学习策略和技术手段,为学习者提供了系统的指导和建议。 ... [详细]
  • 在ElasticStack日志监控系统中,Logstash编码插件自5.0版本起进行了重大改进。插件被独立拆分为gem包,每个插件可以单独进行更新和维护,无需依赖Logstash的整体升级。这不仅提高了系统的灵活性和可维护性,还简化了插件的管理和部署过程。本文将详细介绍这些编码插件的功能、配置方法,并通过实际生产环境中的应用案例,展示其在日志处理和监控中的高效性和可靠性。 ... [详细]
  • 本文深入探讨了如何利用Maven高效管理项目中的外部依赖库。通过介绍Maven的官方依赖搜索地址(),详细讲解了依赖库的添加、版本管理和冲突解决等关键操作。此外,还提供了实用的配置示例和最佳实践,帮助开发者优化项目构建流程,提高开发效率。 ... [详细]
  • 解决针织难题:R语言编程技巧与常见错误分析 ... [详细]
  • 本文介绍了如何利用ObjectMapper实现JSON与JavaBean之间的高效转换。ObjectMapper是Jackson库的核心组件,能够便捷地将Java对象序列化为JSON格式,并支持从JSON、XML以及文件等多种数据源反序列化为Java对象。此外,还探讨了在实际应用中如何优化转换性能,以提升系统整体效率。 ... [详细]
  • Java中不同类型的常量池(字符串常量池、Class常量池和运行时常量池)的对比与关联分析
    在研究Java虚拟机的过程中,笔者发现存在多种类型的常量池,包括字符串常量池、Class常量池和运行时常量池。通过查阅CSDN、博客园等相关资料,对这些常量池的特性、用途及其相互关系进行了详细探讨。本文将深入分析这三种常量池的差异与联系,帮助读者更好地理解Java虚拟机的内部机制。 ... [详细]
  • ButterKnife 是一款用于 Android 开发的注解库,主要用于简化视图和事件绑定。本文详细介绍了 ButterKnife 的基础用法,包括如何通过注解实现字段和方法的绑定,以及在实际项目中的应用示例。此外,文章还提到了截至 2016 年 4 月 29 日,ButterKnife 的最新版本为 8.0.1,为开发者提供了最新的功能和性能优化。 ... [详细]
  • 本文探讨了 Java 中 Pair 类的历史与现状。虽然 Java 标准库中没有内置的 Pair 类,但社区和第三方库提供了多种实现方式,如 Apache Commons 的 Pair 类和 JavaFX 的 javafx.util.Pair 类。这些实现为需要处理成对数据的开发者提供了便利。此外,文章还讨论了为何标准库未包含 Pair 类的原因,以及在现代 Java 开发中使用 Pair 类的最佳实践。 ... [详细]
  • 如何正确配置Log4j以优化日志记录效果? ... [详细]
  • 设计实战 | 10个Kotlin项目深度解析:首页模块开发详解
    设计实战 | 10个Kotlin项目深度解析:首页模块开发详解 ... [详细]
  • 技术分享:深入解析GestureDetector手势识别机制
    技术分享:深入解析GestureDetector手势识别机制 ... [详细]
  • 开发笔记:深入解析Android自定义控件——Button的72种变形技巧
    开发笔记:深入解析Android自定义控件——Button的72种变形技巧 ... [详细]
author-avatar
weizhe
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有