依赖关系:jline-2.12.1 —> jansi-1.11 —> jansi-native-1.5
1.编译Jansi-native源码。
从Github网站下载Jansi-native1.0版本源码。
wget https://github.com/fusesource/jansi-native/archive/jansi-native-1.0.tar.gz
解压源码包。
tar -zxvf jansi-native-1.0
进入Jansi-native源码目录。
cd jansi-native-1.0
执行编译。
mvn -Dplatform=linux64 package
结果输出:./target/jansi-native-1.0-linux64.jar
将jansi-native-1.0.jar,jansi-native-1.0-linux64.jar拷贝到maven本地仓库“LOCAL_M2_PATH/org/fusesource/jansi/jansi-native/1.0/”。
2.编译Jansi1.4源码。
从Github网站下载Jansi 1.4版本源码。
wget https://github.com/fusesource/jansi/archive/jansi-1.4.tar.gz
解压源码包。
tar -zxvf jansi-1.4.tar.gz
进入Jansi-1.4源码目录。
cd jansi-jansi-1.4
修改pom.xml,注释掉下面125-148行的这部分内容。
执行编译。
mvn clean install
4.编译 jline-2.12.1.jar
从github下载Jline对应版本源码。
wget https://github.com/jline/jline2/archive/jline-2.12.1.tar.gz
解压Jline源码包。
tar -zxvf jline-2.12.1.tar.gz
进入解压后目录。
cd jline2-jline-2.12.1
执行编译。
mvn package
输出jar包:./target/jline-2.12.1.jar
问题1
执行编译时,提示如下错误信息。
[INFO] /usr/share/automake-1.13/am/ltlibrary.am: warning: ‘libjansi.la’: linking libtool libraries using a non-POSIX [INFO] /usr/share/automake-1.13/am/ltlibrary.am: archiver requires ‘AM_PROG_AR’ in ‘configure.ac’ [INFO] Makefile.am:20: while processing Libtool library ‘libjansi.la’ [INFO] autoreconf: automake failed with exit status: 1
在编译的库目录下,找到’configure.ac’,用文本编辑器打开,找到类似以下的文本,在最后一行添加AM_PROG_AR即可。
AC_PROG_CC_C_O AC_PROG_LIBTOOL AC_PROG_GREP AC_PROG_NM AC_PROG_SED
问题2
config.status: error: cannot find input file: `Makefile.in’
进入 ./target/native-build,执行以下两步后重新编译:
aclocal**automake —add-missing
问题3
编译jffi-2.14.3时提示下载doxia-module-apt-1.6.jar失败
解决方法:**
手动下载相应的jar包和pom文件到本地仓库中
wget https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-module-apt/1.6/doxia-module-apt-1.6.jar
wget https://repo1.maven.org/maven2/org/apache/maven/doxia/doxia-module-apt/1.6/doxia-module-apt-1.6.pom