当前位置: 首页 > news >正文

Maven快速上手使用指南的笔记

  • Maven Mini Guides

  • Configuring for Reproducible Builds
    使用Maven实现重复构建。
    检查当前使用的插件的版本。

    mvn artifact:check-buildplan
    

    修改pom.xml,增加如下配置,显式指定project.build.outputTimestamp的取值:

      <properties><project.build.outputTimestamp>2023-01-01T00:00:00Z</project.build.outputTimestamp></properties>
    

    执行完整构建,执行如下命令:

    mvn clean install
    

    再次执行构建,同时比较二进制是否一致,执行如下命令:

    mvn clean verify artifact:compare
    
  • Guide to creating assemblies
    使用maven-assembly-plugin,可以指定构建目标文件的文件布局和格式。
    修改项目的pom.xml,增加插件的配置,内容样例如下:

      <build><plugins><plugin><artifactId>maven-assembly-plugin</artifactId><version>3.3.0</version><configuration><descriptors><descriptor>src/assembly/dep.xml</descriptor></descriptors></configuration><executions><execution><id>create-archive</id><phase>package</phase><goals><goal>single</goal></goals></execution></executions></plugin></plugins></build>
    

    在项目路径${project.basedir}/src/assembly下放置布局文件,以上述配置为例,布局文件为dep.xml,内容样例,如下:

    <assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd"><id>bin</id><formats><format>tar.gz</format><format>tar.bz2</format><format>zip</format></formats><fileSets><fileSet><directory>${project.basedir}</directory><outputDirectory>/</outputDirectory><includes><include>README*</include><include>LICENSE*</include><include>NOTICE*</include></includes></fileSet><fileSet><directory>${project.build.directory}</directory><outputDirectory>/</outputDirectory><includes><include>*.jar</include></includes></fileSet><fileSet><directory>${project.build.directory}/site</directory><outputDirectory>docs</outputDirectory></fileSet></fileSets>
    </assembly>
    

    执行构建,命令如下,即可观察效果。

    mvn package
    
  • Guide to Configuring Archive Plugins
    对于常规的jar/war/ejb/ear/assembly插件,默认情况下,在构建结果文件中增加目录META-INF/maven,包含文件pom.xmlpom.properties
    通过修改archive的配置,可以关闭前述默认行为,样例如下:

    <project>...<build><plugins><plugin><groupId>org.apache.maven.plugins</groupId><artifactId>maven-war-plugin</artifactId><version>2.6</version><configuration><archive><addMavenDescriptor>false</addMavenDescriptor></archive></configuration></plugin></plugins></build>...
    </project>
    
  • Configuring Maven
    常见的配置,比如:

    • 本地仓库的路径。
    • 通过代理,下载依赖软件。
    • 下载依赖软件时的并行度。
    • 上传构建目标文件时,增加安全性。
    • 远程仓库的配置,比如镜像。
    • 构建场景的配置。
    • 构建工具链的配置。
  • Guide to generating sources
    对于参与generate-sources阶段的插件,构建时会自动生成代码,如下是插件antlr4-maven-plugin的样例配置:

    <project>...<build><plugins><plugin><groupId>org.antlr</groupId><artifactId>antlr4-maven-plugin</artifactId><version>4.5.3</version><executions><execution><id>antlr</id><goals><goal>antlr4</goal></goals></execution></executions></plugin></plugins></build>...
    </project>
    

    插件生成的代码,可参与后续的compile阶段。

  • Guide to Working with Manifests
    可参考Apache Maven Archiver

  • Guide to Maven Classloading
    Maven工具在运行过程中涉及到的类加载器,以及各自的用途。

  • Guide to Working with Multiple Modules
    对于多个模块组成的项目,Maven 3.X版本的工作流程。

  • Guide to Working with Multiple Modules in Maven 4
    对于多个模块组成的项目,Maven 4.X版本的工作流程。

  • Releasing
    目前在项目中没有使用过。

  • Guide to using Ant with Maven
    借助于插件maven-antrun-plugin,在构建过程中,可以定制shell脚本,定制构建行为。
    如下是样例,在generate-sources阶段调用脚本${project.basedir}/src/main/sh/do-something.sh

    <project><modelVersion>4.0.0</modelVersion><artifactId>my-test-app</artifactId><groupId>my-test-group</groupId><version>1.0-SNAPSHOT</version><build><plugins><plugin><artifactId>maven-antrun-plugin</artifactId><version>1.7</version><executions><execution><phase>generate-sources</phase><configuration><tasks><execdir="${project.basedir}"executable="${project.basedir}/src/main/sh/do-something.sh"failonerror="true"><arg line="arg1 arg2 arg3 arg4" /></exec></tasks></configuration><goals><goal>run</goal></goals></execution></executions></plugin></plugins></build>
    </project>
    
  • Guide to using Modello
    Modello的介绍,如下:

    • 文档
    • 样例

    在项目中没有使用过。

  • Using Extensions
    自定义扩展,修改Maven的行为。

  • Building For Different Environments
    利用profile,针对不同的构建场景,比如可定义不同的插件和参数。

  • Guide to Using Toolchains
    构建项目时,通过使用Toolchains,构建项目时使用不同于运行Maven的JDK等。

http://www.lryc.cn/news/432792.html

相关文章:

  • MySQL面试题大全和详解,含SQL例子
  • java-redis-雪崩
  • 如何在mac上玩使命召唤手游?苹果电脑好玩的第一人称射击游戏推荐
  • SimHash算法详解与应用
  • RasberryPi 3B树莓派基本配置
  • Docker编译环境的使用(ubuntu)
  • 认知杂谈53
  • 量子计算信息安全威胁与应对策略分析
  • Oracle(112)如何使用RMAN恢复数据库?
  • I2C通信协议
  • 使用Python实现智能信用评分系统
  • RocketMQ之发送消息源码分析
  • 使用宝塔面板安装mrdoc
  • C++操作符重载实例
  • Linux高效进程控制的实战技巧
  • 使用条件变量实现线程同步:C++实战指南
  • Spark2.x 入门: KMeans 聚类算法
  • 如何快速练习键盘盲打
  • Flask中实现WebSocket需要什么组件
  • java8 Stream流详解
  • 通信工程学习:什么是AB地址总线、DB数据总线、CD控制总线
  • CP AUTOSAR标准之EthernetInterface(AUTOSAR_SWS_EthernetInterface)(更新中……)
  • Windows系统离线安装使用pm2 管理进程
  • 4-4.Andorid Camera 之简化编码模板(获取摄像头 ID、选择最优预览尺寸)
  • 【深度学习】向量化
  • 基于canal的Redis缓存双写
  • 以太网交换机工作原理学习笔记
  • ECCV`24 | 蚂蚁集团开源风格控制新SOTA!StyleTokenizer:零样本精确控制图像生成
  • Flutter的升级和降级步骤
  • 计算机网络与Internet应用