【SpringBoot3】使用os-maven-plugin为项目自动添加常用的变量

2024-07-13 1352阅读

一、什么是os-maven-plugin

os-maven-plugin 是一个 Maven 扩展/插件,它根据 ${os.name} 和 ${os.arch} 生成各种有用的、与平台相关的项目属性,并将这些属性标准化。${os.name} 和 ${os.arch} 在不同的 JVM 和操作系统版本之间往往存在细微的差异,或者它们有时包含对机器不友好的字符,如空格。此插件试图消除这种碎片化,以便您可以可靠地确定当前的操作系统和架构。

【SpringBoot3】使用os-maven-plugin为项目自动添加常用的变量
(图片来源网络,侵删)

插件生成的属性包括:

  • os.detected.name 被设置为以下值之一,基于 Java 系统属性 os.name 的小写值,且其中的非字母数字字符被移除。例如:OS_400 -> os400

    • aix - 如果值以 aix 开头
    • hpux - 如果值以 hpux 开头
    • os400 - 如果值以 os400 开头,且其后的字符不是数字(例如 os4000 不符合条件)
    • linux - 如果值以 linux 开头
    • osx - 如果值以 mac 或 osx 开头
    • freebsd - 如果值以 freebsd 开头
    • openbsd - 如果值以 openbsd 开头
    • netbsd - 如果值以 netbsd 开头
    • sunos - 如果值以 solaris 或 sunos 开头
    • windows - 如果值以 windows 开头
    • zos - 如果值以 zos 开头
    • os.detected.arch 被设置为以下值之一,基于 Java 系统属性 os.arch 的小写值,且其中的非字母数字字符被移除。例如:x86_64 -> x8664

      • x86_32 - 如果值是以下之一:x8632、x86、i386、i486、i586、i686、ia32、x32
      • x86_64 - 如果值是以下之一:x8664、amd64、ia32e、em64t、x64
      • itanium_32 - 如果值是 ia64n
      • itanium_64 - 如果值是以下之一:ia64、ia64w、itanium64
      • sparc_32 - 如果值是以下之一:sparc、sparc32
      • sparc_64 - 如果值是以下之一:sparcv9、sparc64
      • arm_32 - 如果值是以下之一:arm、arm32
      • aarch_64 - 如果值是 aarch64
      • mips_32 - 如果值是以下之一:mips、mips32
      • mips_64 - 如果值是 mips64
      • mipsel_32 - 如果值是以下之一:mipsel、mips32el
      • mipsel_64 - 如果值是 mips64el
      • ppc_32 - 如果值是以下之一:ppc、ppc32
      • ppc_64 - 如果值是 ppc64
      • ppcle_32 - 如果值是以下之一:ppcle、ppc32le
      • ppcle_64 - 如果值是 ppc64le
      • s390_32 - 如果值是 s390
      • s390_64 - 如果值是 s390x
      • riscv - 如果值是 riscv 或 riscv32
      • riscv64 - 如果值是 riscv64
      • e2k - 如果值是 e2k
      • loongarch_64 - 如果值是 loongarch64

        注意:此属性的位数部分依赖于 JVM 二进制的位数,例如,如果你在 64 位操作系统上运行 32 位 JVM,你将获得以 _32 结尾的属性。

      • os.detected.bitness:表示 JVM 二进制的位数,例如 64、32。对于 zOS 遗留系统,可能会报告为 31。

      • os.detected.version.*:os.detected.version 及其子属性是依赖于操作系统的版本号,可能表示内核或操作系统的发行版本。它们是从 Java 系统属性 os.version 中生成的。os-maven-plugin 使用以下正则表达式来查找版本号:

        ((\\d+)\\.(\\d+)).*

        • os.detected.version.major - 第一个匹配的数字序列
        • os.detected.version.minor - 第二个匹配的数字序列
        • os.detected.version - .,例如 3.1

          这样,os-maven-plugin 能够从 os.version 属性中提取出主要的和次要的版本号,并将它们分别存储在 os.detected.version.major 和 os.detected.version.minor 中,同时组合这两个版本号形成 os.detected.version。

        • os.detected.classifier:是 ${os.detected.name}-${os.detected.arch} 的简写。如:windows-x86_64

        • os.detected.release.*(仅限 Linux):用于特定 Linux 发行版的自定义部署。

          要在 Maven 项目中启用 os-maven-plugin,请在 pom.xml 中添加以下扩展:

            
              
                
                  kr.motd.maven
                  os-maven-plugin
                  1.7.1
                
              
            
          
          

          这样配置后,Maven 项目就可以使用 os-maven-plugin 提供的标准化操作系统和架构属性了。

          二、在项目中使用变量

          使用${os.detected.classifier}变量

            
              
                com.example
                my-native-library
                1.0.0
                ${os.detected.classifier}
              
            
          
          

          参考

          • os-maven-plugin
VPS购买请点击我

免责声明:我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理! 图片声明:本站部分配图来自人工智能系统AI生成,觅知网授权图片,PxHere摄影无版权图库和百度,360,搜狗等多加搜索引擎自动关键词搜索配图,如有侵权的图片,请第一时间联系我们,邮箱:ciyunidc@ciyunshuju.com。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

目录[+]