Java环境、Maven命令路径和依赖制品类型,都可能表现为“找不到”,但解决位置不同。先用版本输出确认工具,再检查依赖坐标,不要用反复修改JAVA_HOME解决AAR类型问题。

先看Maven实际上使用哪份Java

在类Unix Shell里,可以先做这些查询:

command -v java
command -v javac
command -v mvn
java -version
javac -version
mvn -v

重点看 mvn -v 报告的Maven home、Java版本及Java home,而不是只看终端的 java -version。不同启动入口可能获取不同环境;IDE、CI和交互终端应分别核对。

手动安装Maven的基本关系是:安装所需JDK,取得可信Maven二进制包,将其 bin 目录加入PATH,最后验证。具体Java要求按所选Maven版本检查。Maven安装说明

先在当前终端验证,不先修改全局profile

下面是需要替换为本机实际目录的示意,不是本站提供的安装路径:

export JAVA_HOME="/opt/jdk-example"
export MAVEN_HOME="/opt/maven-example"
export PATH="$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH"
mvn -v

这些设置会改变当前Shell及后续子进程环境。确认无误后,再选择用户级配置或CI配置位置;不要把示例路径直接写进 /etc/profile 影响所有用户。重新加载配置的Shell命令是 source,不是 soucre,但只应加载自己已核查的文件。

旧OpenJDK路径不能机械复制到另一台机器;JDK根目录通常包含开发工具,JAVA_HOME也不是指向某个 java 文件。旧笔记手工把 rt.jar/tools.jar 拼进CLASSPATH,并非运行Maven的通用必要条件。

依赖是AAR,就要声明其类型

在普通依赖声明中,未指定类型通常按JAR处理。若仓库实际发布的是AAR,需要在对应dependency里声明:

<!-- 这是 dependency 内的类型片段,坐标使用该库实际发布的值 -->
<type>aar</type>

依赖类型参与制品解析,与 groupId/artifactId/version 及可能的classifier一起核对。Maven依赖机制

取到AAR不代表普通Java项目已经处理好Android的资源、清单或原生库;Android工程应使用适合其构建体系的处理方式。Android AAR库说明

因此依次验收“命令能运行”“使用正确JDK”“解析到正确制品”“编译/测试/打包符合目标”,不要以一次版本输出代替整个工程构建成功。