前置软件:
JDK 1.8
Maven 3.3.9
1 下载源码
bash
# 下载源码
git clone https://github.com/apache/hive.git
cd hive
# 查看标签
git tag
# 切换到要阅读的指定版本的tag
git checkout rel/release-2.1.0
2 编译源码
bash
mvn clean install -DskipTests
执行报错
日志如下
log
E:\os_ws\hive\common>mvn clean install -DskipTests
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building Hive Common 2.1.0
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ hive-common ---
[INFO] Deleting E:\os_ws\hive\common\target
[INFO] Deleting E:\os_ws\hive\common (includes = [datanucleus.log, derby.log], excludes = [])
[INFO]
[INFO] --- maven-enforcer-plugin:1.3.1:enforce (enforce-no-snapshots) @ hive-common ---
[INFO]
[INFO] --- maven-antrun-plugin:1.7:run (generate-version-annotation) @ hive-common ---
[INFO] Executing tasks
main:
[exec] /bin/bash: E:os_wshivecommon/src/scripts/saveVersion.sh: No such file or directory
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 2.992 s
[INFO] Finished at: 2022-05-17T15:31:30+08:00
[INFO] Final Memory: 17M/298M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-antrun-plugin:1.7:run (generate-version-annotation) on project hive-common: An Ant BuildException has occured: exec returned: 127
[ERROR] around Ant part ...<exec failοnerrοr="true" executable="bash">... @ 4:46 in E:\os_ws\hive\common\target\antrun\build-main.xml
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
3 解决报错
找了很多类似的问题,他们的解决方法不太适用于我的情况
果断自己想办法解决,既然hive-common打包报错那就下载好common包
3.1 下载hive-common的jar包
1 浏览器打开https://mvnrepository.com/
2 输入hive common
点击回车搜索jar包
3 找到需要的版本
4 点击下载jar
5 回到命令行将jar包install到本地maven仓库
bash
mvn install:install-file -DgroupId=org.apache.hive -DartifactId=hive-common -Dversion=2.1.0 -Dpackaging=jar -Dfile=E:\download\browser\hive-common-2.1.0.jar
- -DgroupId=org.apache.hive 指定groupid
- -DartifactId=hive-common 指定artifactId
- -Dfile=E:\download\browser\hive-common-2.1.0.jar 指定jar包所在路径
3.2 注释掉antrun插件
找到hive\common\pom.xml
将264行到286行的maven-antrun-plugin注释掉
3.3 再次执行编译命令
mvn clean install -DskipTests
终于编译成功了