osx下maven的一个坑

osx零碎maven根本都是Homebrew装置的.maven是java写的须要jre运行环境.所以Homebrew会主动帮你装openjdk.

{    "homebrew_version":"2.4.0-69-g67c843b-dirty",    "used_options":[    ],    "unused_options":[    ],    "built_as_bottle":false,    "poured_from_bottle":false,    "installed_as_dependency":false,    "installed_on_request":true,    "changed_files":null,    "time":1592835968,    "source_modified_time":1573129938,    "HEAD":"67c843b91ef272d5408fc2cb74ce8b39042ec1bf",    "stdlib":null,    "compiler":"clang",    "aliases":[        "maven@3.6"    ],    "runtime_dependencies":[        {            "full_name":"openjdk",            "version":"13.0.2+8"        }    ],    "source":{        "path":"/usr/local/Homebrew/Library/Taps/homebrew/homebrew-core/Formula/maven.rb",        "tap":"homebrew/core",        "spec":"stable",        "versions":{            "stable":"3.6.3",            "devel":"",            "head":"",            "version_scheme":0        }    }}****

大多数状况是相安无事的.直到遇见了 javax.xml.bind.annotation包.这个包存在于jdk8,在后续大略jdk11的时候被移除了.于是mvn package的时候呈现以下的问题.

一开始我认为是pom文件配置出了问题.前面我发现用idea的maven是能够编译的.所以代码应该是没锅的.于是我查看了一下maven的版本.果然有问题.

没错,他竟然用的是openjdk13.0.很显然和咱们的开发环境1.8产生了抵触.果决改之.

如下,把java_home改成咱们的jdk1.8

#!/bin/bash JAVA_HOME="${JAVA_HOME:-/Library/Java/JavaVirtualMachines/jdk1.8.0_251.jdk/Contents/Home}" exec "/usr/local/Cellar/maven/3.6.3_1/libexec/bin/mvn" "$@"

从新执行mvn package.编译胜利.