-
1简介Snappy 是一个 C++ 的用来压缩和解压缩的开发包。其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。官方链接:http://google.github.io/snappy/类别:压缩Java开发包 2编译环境安装2.1安装OpenJDK下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile2.2安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository> <!--修改成自己搭建的maven仓库,ARM使能后的jar包替换到该仓库--><mirror></mirror>2.3 其他依赖安装安装git gcc gcc-c++ make cmake libtoolsyum install git gcc gcc-c++ make cmake libtools -y2.4 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#! /bin/sh/usr/bin/gcc-impl -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件 3组件编译安装 从github下载源码并解压wget https://github.com/xerial/snappy-java/archive/1.1.1.6.zipmv 1.1.1.6.zip snappy-java-1.1.1.6.zipunzip snappy-java-1.1.1.6.zip 执行编译cd snappy-java-1.1.1.6make编译后结果: 编译出的jar包位于:target/snappy-java-1.1.1.6.jar4 FAQ4.1 问题14.1.1 现象:提示无法下载sbt-launch.jar4.1.2 解决方案修改sbt文件中的下载地址。 如果还是下载不了,可以手动下载到如下目录,再编译:cd /root/.sbt/launchers/0.13.6/wget http://dl.bintray.com/typesafe/ivy-releases/org.scala-sbt/sbt-launch/0.13.6/sbt-launch.jar
-
1 编译环境准备1.1 安装Openjdk下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile1.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile1.3 安装Gcc等依赖项挂载OS镜像:mount YOUR_OS.iso /media -o loop修改/etc/yum.repos.d/Base.repo文件,配置yum本地源:[Local]name=CentOS-7.4 Localbaseurl=file:///media/enabled=1gpgcheck=0运行下面的命令,使yum源配置生效:yum clean allyum makecacheyum安装GCC等相关依赖:yum install git gcc gcc-c++ make cmake libtool autoconf automake -y1.4 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#! /bin/sh/usr/bin/gcc-impl -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件2 组件编译安装下载rocksdbjni-5.7.3源码,并解压wget https://codeload.github.com/facebook/rocksdb/zip/v5.7.3unzip v5.7.3cd rocksdb-5.7.3修改Makefile,将DEBUG_LEVEL设为0编译打包,rocksdbjni-5.7.3-linux64.jar在rocksdb-5.7.3/java/target目录PORTABLE=1 make rocksdbjava -j83 测试无4 FAQQ: 为何编译好的jar包大小比从Maven仓库下载的大?A: Jar包内的librocksdbjni-linux64.so包含符号信息,可通过strip命令去掉。Q: 提示找不到jni.h或者jni_md.h?A: 将编译使用的JDK中的jni.h和jni_md.h移动到编译根目录。 Q:编译时报错:A: 使用以下编译命令进行编译PORTABLE=1 make rocksdbjava -j8Q:编译时出现错误:va_list不能与nullptr进行比较A:注释掉java/rocksjni/loggerjnicallback.cc的151行,重新编译Q:遇到找不到jni.h的问题是因为没有配置JAVA_HOME路径,需要配置再次编如果还出错,则将编译使用的JDK中的jni.h和jni_md.h移动到编译根目录。
-
1 简介 Scala-compiler,是scala语言的一个编译器。2 编译环境配置2.1 安装Openjdk下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile2.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository> <!--修改成自己搭建的maven仓库,ARM使能后的jar包替换到该仓库--><mirror></mirror>2.3 安装ant下载ant 1.7.1版本并解压:wget https://archive.apache.org/dist/ant/binaries/apache-ant-1.7.1-bin.tar.gztar -xzf apache-ant-1.7.1-bin.tar.gz运行下面命令,使修改的环境变量生效:JAVA_HOME=/opt/tools/installed/jdk8u191-b12ANT_HOME=/opt/tools/apache-ant-1.7.1MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/libPATH=$ANT_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME ANT_HOME CLASSPATH PATH 运行下面命令,使修改的环境变量生效:source /etc/profile 3 组件编译安装 1)从github官方网站下载对应版本源码并解压git clone https://github.com/scala/scala.gitcd scalagit checkout v2.11.72)编译jline-2.12.1,参考链接https://bbs.huaweicloud.com/forum/thread-22742-1-1.html编译并将编译过后的jline-2.12.1.jar替换到maven本地仓库3)执行编译ant会在./build/pack/lib目录下生成对应的jar包:将scala-compiler.jar重命名为scala-compiler-2.11.7.jar
-
软件分析构建中心RPM重构问题场景: 软件分析构建中心RPM重构 内网环境,配置代理问题现场: jar包经常下载失败问题原因: 下载的处理有问题,建链成功后,第一次下载失败,应用没有重新再去请求,页面上多次重新执行“软件构建”,jar能下载到data建议: 软件分析构建中心建议应用层增加重试次数,至少3次,不然很容易构建失败问题抓包:没有应用层重试报文。[root@centos-164 ~]# tcpdump -i any port 8080 -s0 -Atcpdump: verbose output suppressed, use -v or -vv for full protocol decodelistening on any, link-type LINUX_SLL (Linux cooked), capture size 262144 bytes10:22:15.109368 IP centos-164.55728 > 192.168.102.225.webcache: Flags [S], seq 1214886243, win 29200, options [mss 1460,sackOK,TS val 1051570889 ecr 0,nop,wscale 7], length 0E..<..@.@.....f...f.....Hi.c......r.O..........>...........................10:22:15.109382 IP centos-164.55728 > 192.168.102.225.webcache: Flags [S], seq 1214886243, win 29200, options [mss 1460,sackOK,TS val 1051570889 ecr 0,nop,wscale 7], length 0E..<..@.@.....f...f.....Hi.c......r.O..........>...........................10:22:15.109752 IP 192.168.102.225.webcache > centos-164.55728: Flags [S.], seq 3355074727, ack 1214886244, win 8192, options [mss 1460,nop,wscale 8,sackOK,TS val 86598567 ecr 1051570889], length 0E..<T.@...W...f...f.......`.Hi.d.. .c ..............)c.>...................10:22:15.109752 IP 192.168.102.225.webcache > centos-164.55728: Flags [S.], seq 3355074727, ack 1214886244, win 8192, options [mss 1460,nop,wscale 8,sackOK,TS val 86598567 ecr 1051570889], length 0E..<T.@...W...f...f.......`.Hi.d.. .c ..............)c.>...................10:22:15.109800 IP centos-164.55728 > 192.168.102.225.webcache: Flags [.], ack 1, win 229, options [nop,nop,TS val 1051570890 ecr 86598567], length 0E..4./@.@.....f...f.....Hi.d..`.....N......>....)c.................10:22:15.109804 IP centos-164.55728 > 192.168.102.225.webcache: Flags [.], ack 1, win 229, options [nop,nop,TS val 1051570890 ecr 86598567], length 0E..4./@.@.....f...f.....Hi.d..`.....N......>....)c.................10:22:15.109831 IP centos-164.55728 > 192.168.102.225.webcache: Flags [P.], seq 1:44, ack 1, win 229, options [nop,nop,TS val 1051570890 ecr 86598567], length 43: HTTP: CONNECT repo.huaweicloud.com:443 HTTP/1.0E.._.0@.@.....f...f.....Hi.d..`.....O(.....>....)c.CONNECT repo.huaweicloud.com:443 HTTP/1.0................10:22:15.109834 IP centos-164.55728 > 192.168.102.225.webcache: Flags [P.], seq 1:44, ack 1, win 229, options [nop,nop,TS val 1051570890 ecr 86598567], length 43: HTTP: CONNECT repo.huaweicloud.com:443 HTTP/1.0E.._.0@.@.....f...f.....Hi.d..`.....O(.....>....)c.CONNECT repo.huaweicloud.com:443 HTTP/1.0................10:22:15.109864 IP centos-164.55728 > 192.168.102.225.webcache: Flags [P.], seq 44:46, ack 1, win 229, options [nop,nop,TS val 1051570890 ecr 86598567], length 2: HTTPE..6.1@.@.....f...f.....Hi....`.....N......>....)c.................10:22:15.109866 IP centos-164.55728 > 192.168.102.225.webcache: Flags [P.], seq 44:46, ack 1, win 229, options [nop,nop,TS val 1051570890 ecr 86598567], length 2: HTTPE..6.1@.@.....f...f.....Hi....`.....N......>....)c.................10:22:15.110295 IP 192.168.102.225.webcache > centos-164.55728: Flags [.], ack 46, win 260, options [nop,nop,TS val 86598567 ecr 1051570890], length 0E..4T.@...W...f...f.......`.Hi..............)c.>...................10:22:15.110295 IP 192.168.102.225.webcache > centos-164.55728: Flags [.], ack 46, win 260, options [nop,nop,TS val 86598567 ecr 1051570890], length 0E..4T.@...W...f...f.......`.Hi..............)c.>...................10:22:30.125349 IP centos-164.55728 > 192.168.102.225.webcache: Flags [F.], seq 46, ack 1, win 229, options [nop,nop,TS val 1051585905 ecr 86598567], length 0E..4.2@.@.....f...f.....Hi....`.....N......>..q.)c.................10:22:30.125360 IP centos-164.55728 > 192.168.102.225.webcache: Flags [F.], seq 46, ack 1, win 229, options [nop,nop,TS val 1051585905 ecr 86598567], length 0E..4.2@.@.....f...f.....Hi....`.....N......>..q.)c.................10:22:30.125530 IP 192.168.102.225.webcache > centos-164.55728: Flags [.], ack 47, win 260, options [nop,nop,TS val 86600068 ecr 1051585905], length 0E..4[.@...PL..f...f.......`.Hi......p6......)i.>..q................10:22:30.125530 IP 192.168.102.225.webcache > centos-164.55728: Flags [.], ack 47, win 260, options [nop,nop,TS val 86600068 ecr 1051585905], length 0E..4[.@...PL..f...f.......`.Hi......p6......)i.>..q................10:22:36.124136 IP 192.168.102.225.webcache > centos-164.55728: Flags [F.], seq 1, ack 47, win 260, options [nop,nop,TS val 86600668 ecr 1051585905], length 0E..4^.@...M<..f...f.......`.Hi......m.......)k.>..q................10:22:36.124136 IP 192.168.102.225.webcache > centos-164.55728: Flags [F.], seq 1, ack 47, win 260, options [nop,nop,TS val 86600668 ecr 1051585905], length 0E..4^.@...M<..f...f.......`.Hi......m.......)k.>..q.)c.>...........10:22:36.124174 IP centos-164.55728 > 192.168.102.225.webcache: Flags [.], ack 2, win 229, options [nop,nop,TS val 1051591904 ecr 86600668], length 0E..4{.@.@.p=..f...f.....Hi....`.....V......>....)k..)c.>...........10:22:36.124177 IP centos-164.55728 > 192.168.102.225.webcache: Flags [.], ack 2, win 229, options [nop,nop,TS val 1051591904 ecr 86600668], length 0E..4{.@.@.p=..f...f.....Hi....`.....V......>....)k.................其他信息:用wget有重试操作的。[root@centos-164 portadmin]# vi ../logs/porting.log[root@centos-164 portadmin]# wget www.baidu.com--2020-02-13 10:29:04-- http://www.baidu.com/Connecting to 192.168.102.225:8080... connected.Proxy request sent, awaiting response... No data received.Retrying.--2020-02-13 10:29:26-- (try: 2) http://www.baidu.com/Connecting to 192.168.102.225:8080... connected.Proxy request sent, awaiting response... 200 OKLength: unspecified [text/html]Saving to: ‘index.html’ [ <=> ] 159,972 769KB/s in 0.2s2020-02-13 10:29:26 (769 KB/s) - ‘index.html’ saved [159972]
-
1、简介Leveldbjni提供LevelDB的JAVA接口。本文的最终目标是编译生成leveldbjni-all-1.8.jar包。2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包snappy1.1.5https://github.com/google/snappy/archive/1.1.5.tar.gz leveldbV1.20https://github.com/google/leveldb/archive/v1.20.tar.gzleveldbjnimasterhttps://github.com/fusesource/leveldbjni.git 3、依赖安装Leveldbjni的编译需要maven,因此先设置好OpenJDK及maven。此处我们在centos7的容器中进行。https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u222-b10/OpenJDK8U-jdk_aarch64_linux_hotspot_8u222b10.tar.gz https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gz将如上链接中的两个tar包解压到固定位置,如/opt/,待后续使用。1) 拉起容器将解压位置挂载到/root,可以不用修改maven的配置文件(默认为用户HOME目录的.m2/repository),可将缓存持久化的同时,避免maven写docker读写层。bash-4.2# docker run -it -v /opt:/root --name leveldbjni centos:7bash-4.2# bash-4.2# vi /etc/profileJAVA_HOME=/root/jdk8u222-b10MAVEN_HOME=/root/apache-maven-3.5.4 PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATH export MAVEN_HOME JAVA_HOME PATH bash-4.2# source /etc/profile2) snappybash-4.2# wget https://github.com/google/snappy/archive/1.1.5.tar.gz bash-4.2# tar –xzf 1.1.5.tar.gzbash-4.2# cd snappy-1.1.5bash-4.2# ./autogen.shbash-4.2# ./configure --disable-shared --with-picbash-4.2# makebash-4.2# cp .libs/libsnappy.a .bash-4.2# export SNAPPY_HOME=`pwd`3) leveldbbash-4.2# wget https://github.com/google/leveldb/archive/v1.20.tar.gzbash-4.2# tar -xzf v1.20.tar.gzbash-4.2# cd leveldb-1.20bash-4.2# wget https://github.com/google/leveldb/pull/441/commits/abb05abdbd9a92440e41a33704fba783818929d4.patchbash-4.2# wget https://github.com/google/leveldb/pull/441/commits/e521f3c4a0f92ba01a3b2a077517507c021a8cea.patchbash-4.2# patch -p1 –i abb05abdbd9a92440e41a33704fba783818929d4.patchbash-4.2# patch -p1 -i e521f3c4a0f92ba01a3b2a077517507c021a8cea.patch再依据leveldbjni中的leveldb.patch的改动,修改文件build_detect_platform。bash-4.2# makebash-4.2# cp out-static/libleveldb.a .bash-4.2# export LEVELDB_HOME=`pwd`4、组件编译安装bash-4.2# git clone https://github.com/fusesource/leveldbjni.gitbash-4.2# cd leveldbjnibash-4.2# cd ..bash-4.2# mvn -P all org.codehaus.mojo:versions-maven-plugin:1.2:set org.codehaus.mojo:versions-maven-plugin:1.2:commit -DnewVersion=1.8此步骤修改release版本号,参考https://github.com/fusesource/leveldbjni/blob/master/releasing.md bash-4.2# mvn clean install -P download -P linux64-aarch64如上的命令执行会失败,提示没有找到automake-1.14,查看环境,安装的版本为automake-1.13。[INFO] --- maven-hawtjni-plugin:1.11:build (default) @ leveldbjni-linux64-aarch64 ---[INFO] Extracting /root/leveldbjni/leveldbjni/target/leveldbjni-1.8-native-src.zip to /root/leveldbjni/leveldbjni-linux64-aarch64/target/native-build-extracted[INFO] executing: /bin/sh -c ./configure --disable-ccache --prefix=/root/leveldbjni/leveldbjni-linux64-aarch64/target/native-build/target --with-leveldb=/root/leveldb-1.20/ --with-snappy=/root/snappy-1.1.5/[INFO] executing: /bin/sh -c make install[INFO] cd . && /bin/sh /root/leveldbjni/leveldbjni-linux64-aarch64/target/native-build/autotools/missing automake-1.14 --foreign --ignore-deps Makefile[INFO] /root/leveldbjni/leveldbjni-linux64-aarch64/target/native-build/autotools/missing: line 81: automake-1.14: command not found[INFO] WARNING: 'automake-1.14' is missing on your system.[INFO] You should only need it if you modified 'Makefile.am' or[INFO] 'configure.ac' or m4 files included by 'configure.ac'.[INFO] The 'automake' program is part of the GNU Automake package:[INFO] <http://www.gnu.org/software/automake>[INFO] It also requires GNU Autoconf, GNU m4 and Perl in order to run:[INFO] <http://www.gnu.org/software/autoconf>[INFO] <http://www.gnu.org/software/m4/>[INFO] <http://www.perl.org/>[INFO] make: *** [Makefile.in] Error 127 做如下处理:bash-4.2# pushd leveldbjni/targetbash-4.2# unzip leveldbjni-1.8-native-src.zipbash-4.2# cd leveldbjni-1.8-native-src/bash-4.2# sh autogen.shbash-4.2# cp -rf . /root/leveldbjni/leveldbjni/src/main/native-package/bash-4.2# popdbash-4.2# mvn clean install -P download -P linux64-aarch64bash-4.2# pushd leveldbjni-all/bash-4.2# vi pom.xml注释掉目前不关心的架构打包,否则会导致失败(dependencies部分略) <Bundle-NativeCode> META-INF/native/windows32/leveldbjni.dll;osname=Win32;processor=x86, META-INF/native/windows64/leveldbjni.dll;osname=Win32;processor=x86-64, META-INF/native/osx/libleveldbjni.jnilib;osname=macosx;processor=x86, META-INF/native/osx/libleveldbjni.jnilib;osname=macosx;processor=x86-64, META-INF/native/linux32/libleveldbjni.so;osname=Linux;processor=x86, META-INF/native/linux64/libleveldbjni.so;osname=Linux;processor=x86-64,<!-- META-INF/native/sunos64/amd64/libleveldbjni.so;osname=SunOS;processor=x86-64, META-INF/native/sunos64/sparcv9/libleveldbjni.so;osname=SunOS;processor=sparcv9, META-INF/native/freebsd64/libleveldbjni.so;osname=FreeBSD;processor=x86-64, META-INF/native/linux64/ppc64le/libleveldbjni.so;osname=Linux;processor=ppc64le,--> META-INF/native/linux64/aarch64/libleveldbjni.so;osname=Linux;processor=aarch64 </Bundle-NativeCode>bash-4.2# mvn clean package -P download -P all5、系统配置 无6、测试bash-4.2# cd leveldbjni-all/target/bash-4.2# unzip leveldbjni-all-1.8.jarbash-4.2# find META-INF/native/META-INF/native/META-INF/native/linux64META-INF/native/linux64/libleveldbjni.soMETA-INF/native/linux64/aarch64META-INF/native/linux64/aarch64/libleveldbjni.soMETA-INF/native/windows64META-INF/native/windows64/leveldbjni.dllMETA-INF/native/linux32META-INF/native/linux32/libleveldbjni.soMETA-INF/native/windows32META-INF/native/windows32/leveldbjni.dllMETA-INF/native/osxMETA-INF/native/osx/libleveldbjni.jnilibbash-4.2# ldd META-INF/native/linux64/aarch64/libleveldbjni.so ldd: warning: you do not have execution permission for `META-INF/native/linux64/aarch64/libleveldbjni.so' linux-vdso.so.1 => (0x0000ffffa9870000) libstdc++.so.6 => /lib64/libstdc++.so.6 (0x0000ffffa96a0000) libm.so.6 => /lib64/libm.so.6 (0x0000ffffa95e0000) libc.so.6 => /lib64/libc.so.6 (0x0000ffffa9450000) libgcc_s.so.1 => /lib64/libgcc_s.so.1 (0x0000ffffa9410000) /lib/ld-linux-aarch64.so.1 (0x0000ffffa9880000)编译的so中不包含snappy等第三方动态库。7、参考信息https://github.com/fusesource/leveldbjni8、FAQ无
-
在编辑maven工程时,发现如下2个jar包不可用。https://mirrors.huaweicloud.com/repository/maven/org/apache/hadoop/hadoop-mapreduce-client-jobclient/2.7.3.2.6.3.0-235/hadoop-mapreduce-client-jobclient-2.7.3.2.6.3.0-235-tests.jarhttps://mirrors.huaweicloud.com/repository/maven/org/apache/hadoop/hadoop-hdfs/2.7.3.2.6.3.0-235/hadoop-hdfs-2.7.3.2.6.3.0-235-tests.jar用IE打开也无法下载。用IE打开上一级目录,可以看到这2个文件名,但点击也无法下载。请处理。
-
场景: Maven仓部分jar包依赖x86 so,无法在鲲鹏上直接使用,需要在鲲鹏上重新编译,部分jar包已编译好放在鲲鹏maven仓内(https://mirrors.huaweicloud.com/repository/maven/kunpeng/),可以直接使用,只需在maven配置文件内配置远程仓优先从鲲鹏maven仓搜索,找不到再从其它仓搜索。 配置文法: 1. 编辑配置文件${maven.home}/conf/settings.xml 2. profiles标签下增加鲲鹏maven仓 <profile> <id>securecentral</id> <activation> <activeByDefault>true</activeByDefault> </activation> <repositories> <repository> <id>1central</id> <url>https://mirrors.huaweicloud.com/repository/maven/kunpeng/</url> <releases> <enabled>true</enabled> </releases> </repository> <repository> <id>2central</id> <url> https://mirrors.huaweicloud.com/repository/maven/</url> <releases> <enabled>true</enabled> </releases> </repository> </repositories> <pluginRepositories> <pluginRepository> <id>3central</id> <url>https://mirrors.huaweicloud.com/repository/maven/kunpeng/</url> <releases> <enabled>true</enabled> </releases> </pluginRepository> <pluginRepository> <id>4central</id> <url>https://mirrors.huaweicloud.com/repository/maven/</url> <releases> <enabled>true</enabled> </releases> </pluginRepository> </pluginRepositories> </profile>
-
1简介Snappy 是一个 C++ 的用来压缩和解压缩的开发包。其目标不是最大限度压缩或者兼容其他压缩格式,而是旨在提供高速压缩速度和合理的压缩率。官方链接:http://google.github.io/snappy/类别:压缩Java开发包2环境类别子项版本获取地址(方法) 硬件CPU鲲鹏920--网络Ethernet-10GE--存储SATA 4T--内存256G 2400MHz--OSCentOS7.4Kernel4.11.0-44 软件GCC4.8.5OpenJDK 1.8.0_191Maven3.5.4Snappy-java1.1.1.73依赖安装3.1安装OpenJDK下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile3.2安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile修改maven配置文件中的:本地仓路径、远程仓等:<!--默认在“~/.m2/”目录下,修改成你自己想保存的目录--><localRepository>/path/to/local/repo</localRepository> <!--修改成自己搭建的maven仓库,ARM使能后的jar包替换到该仓库--><mirror></mirror>3.3 其他依赖安装安装git gcc gcc-c++ make cmake libtoolsyum install git gcc gcc-c++ make cmake libtools -y3.4 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#! /bin/sh/usr/bin/gcc-impl -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件4 组件编译安装 从github下载源码并解压wget https://github.com/xerial/snappy-java/archive/1.1.2.tar.gztar -zxvf 1.1.2.tar.gz 进源码目录snappy-java-1.1.2执行编译cd snappy-java-1.1.2make若是编译报下载snappy源码失败的错误,则需要手动下载snappy的源码到target目录(此处是指snappy不是snappy-java)本文版本下载snappy-1.1.2.tar.gz,可使用如下链接:http://repository.timesys.com/buildsources/s/snappy/snappy-1.1.2/snappy-1.1.2.tar.gz下载完后重新make编译出的jar包位于:target/snappy-java-1.1.2.jar
-
1 软硬件环境类别子项版本获取地址(方法) 硬件CPU鲲鹏920--网络Ethernet-10GE--存储SATA 4T--内存256G 2400MHz--OSCentOS7.6Kernel4.14 软件GCC4.8.5Maven3.5.4Apr1.5.2Openssl1.0.2h2 编译环境准备2.1 安装OpenJDK下载并安装到指定目录(如/opt/tools/installed):wget https://github.com/AdoptOpenJDK/openjdk8-binaries/releases/download/jdk8u191-b12/OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gztar -zxf OpenJDK8U-jdk_aarch64_linux_hotspot_8u191b12.tar.gzmv jdk8u191-b12 /opt/tools/installed/配置java环境变量,在/etc/profile文件末尾处增加下面的代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12PATH=$JAVA_HOME/bin:$PATHexport JAVA_HOME PATH运行下面命令,使修改的环境变量生效:source /etc/profile2.2 安装Maven下载并安装到指定目录(如/opt/tools/installed):wget https://archive.apache.org/dist/maven/maven-3/3.5.4/binaries/apache-maven-3.5.4-bin.tar.gztar -zxf apache-maven-3.5.4-bin.tar.gzmv apache-maven-3.5.4 /opt/tools/installed/修改maven环境变量,在/etc/profile文件末尾增加下面高亮代码:JAVA_HOME=/opt/tools/installed/jdk8u191-b12MAVEN_HOME=/opt/tools/installed/apache-maven-3.5.4PATH=$MAVEN_HOME/bin:$JAVA_HOME/bin:$PATHexport MAVEN_HOME JAVA_HOME PATH运行下面的命令,是修改的环境变量生效:source /etc/profile2.3 安装Gcc等依赖项yum安装GCC等相关依赖:yum install git gcc gcc-c++ make cmake libtool autoconf automake -y2.4 解决-fsigned-char问题1.使用command -v gcc命令寻找gcc所在路径(一般位于/usr/bin/gcc)2.更改gcc的名字(比如改成gcc-impl)3.在gcc所在目录执行vim gcc,并填入如下内容保存:#! /bin/sh/usr/bin/gcc-impl -fsigned-char “$@”4.执行chmod +x gcc给脚本添加执行权限5.使用与1-4步相似的方式给g++创建同名字的脚本文件3 组件编译安装3.1 安装相关依赖包3.1.1 安装netty-tcnative 1.1.33.Fork231. 下载并解压版本wget https://github.com/netty/netty-tcnative/archive/netty-tcnative-parent-1.1.33.Fork23.tar.gztar -zxvf netty-tcnative-parent-1.1.33.Fork23.tar.gz 2. 进入netty-tcnative解压目录cd netty-tcnative-netty-tcnative-parent-1.1.33.Fork233. 修改pom.xml,屏蔽boringssl的编译,编译打包到maven本地仓库(该步会有报错,解决方法见下一步)mvn install -DskipTests修改pom.xml,注释掉下载apr-1.5.2的部分(有两处)4. 并下载apr-1.5.2,放置于指定位置cd ./openssl-static/targetwget https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz继续编译打包到maven本地仓库(该步会有报错,解决方法见下一步)mvn install -DskipTests修改openssl-static/pom.xml,注释掉下载openssl source的部分(有两处)将openssl-static/target/old/1.0.2/目录下的openssl-1.0.2j.tar.gz拷贝到openssl-static/targetcp ./openssl-static/target/old/1.0.2/openssl-1.0.2j.tar.gz . openssl-static/target/ 5. 编译打包到maven本地仓库mvn install -DskipTests 6. 修改tcnative生成jar包的文件名,在文件最后增加-fedoracd /root/.m2/repository/io/netty/netty-tcnative/1.1.33.Fork23cp netty-tcnative-1.1.33.Fork23-linux-aarch_64.jar netty-tcnative-1.1.33.Fork23-linux-aarch_64-fedora.jar 3.2 下载netty-4.0.42源码下载netty-4.0.42源码,并解压wget https://github.com/netty/netty/archive/netty-4.0.42.Final.tar.gztar -zxvf netty-4.0.42.Final.tar.gz修改pom.xml,注释以下代码编译打成jar包, netty-all-4.0.42.Final.jar放置于netty-netty-4.0.42.Final/all/target目录mvn install -DskipTests 4 测试无5 FAQQ: 为何在编译netty-tcnative时屏蔽boringssl?A: 若编译时不屏蔽boringssl,会报tcnative openssl版本(1.0.2h)与boringssl中需要的C语言宏定义库不完全兼容导致的。并且,由于boringssl是google自己开发并自己使用,并不希望第三方软件使用,去掉此部分风险小,因此采用屏蔽此部分的方法。
-
1、简介Netty是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服 务器和客户端。类别:应用工具2、基础环境类别子项版本获取地址(方法)华为云虚拟机KC1(920)--OSCentOS7.5Kernel4.14软件包GCC4.8.5Maven 3.5.4https://maven.apache.org/ Apr1.5.2https://archive.apache.org/ dist/apr/apr-1.5.2.tar.gzNetty-tcnative1.3.33.Fork3 https://codeload.github.com/netty/netty-tcnative/tar.gz/ netty-tcnative-1.1.33.Fork3netty-4.0.29.Final.zip4.0.29https://github.com/netty/netty/archive/netty-4.0.29.Final.zip3、依赖安装yum install git gcc gcc-c++ make cmake libtools -y4、组件编译安装下载apr-1.5.2源码,并编译安装下载apr-1.5.2源码。 wget https://archive.apache.org/dist/apr/apr-1.5.2.tar.gz 解压源码包。 tar –zxvf apr-1.5.2.tar.gz 进入解压后目录。 cd apr-1.5.2 4. 编译安装。 ./configure make make install 下载tcnative-1.1.33.Fork3源码,并编译安装wget https://codeload.github.com/netty/netty-tcnative/tar.gz/nettytcnative-1.1.33.Fork3 mv netty-tcnative-1.1.33.Fork3 netty-tcnative-1.1.33.Fork3.tar.gz 解压源码包tar -zxvf netty-tcnative-1.1.33.Fork3.tar.gz 进入解压后目录。 cd netty-tcnative-netty-tcnative-1.1.33.Fork3 修改pom.xml,在编译native库过程中添加-fsigned-char编译打包到maven本地仓库mvn install -DskipTests 下载netty-4.0.29源码,并编译安装wget https://github.com/netty/netty/archive/netty-4.0.29.Final.tar.gz 解压源码包tar –zxvf netty-4.0.29.Final.tar.gz 修改transport-native-epoll/pom.xml,在编译native库过程中添加-fsigned-char。 编译打成jar包,netty-all-4.0.29.Final.jar放置于netty-netty-4.0.29.Final/all/target目录。 mvn package -DskipTests5、系统配置无6、测试无7、参考信息无8、FAQ无
-
使用华为镜像站创建maven项目以下工具包无法下载: com.alibaba.druid //阿里巴巴数据库链接池 Cannot resolve plugin org.apache.maven.plugins:maven-clean-plugin:2.5 Cannot resolve plugin org.apache.maven.plugins:maven-resources-plugin:2.6 Cannot resolve plugin org.apache.maven.plugins:maven-jar-plugin:2.4 Cannot resolve plugin org.apache.maven.plugins:maven-compiler-plugin:3.1 Cannot resolve plugin org.apache.maven.plugins:maven-surefire-plugin:2.12.4 Cannot resolve plugin org.apache.maven.plugins:maven-install-plugin:2.4 Cannot resolve plugin org.apache.maven.plugins:maven-deploy-plugin:2.7 Cannot resolve plugin org.apache.maven.plugins:maven-site-plugin:3.3 maven的setting文件配置如下 <mirror> <id>huaweicloud</id> <mirrorOf>*</mirrorOf> <url>https://repo.huaweicloud.com/repository/maven/</url> </mirror> 偶尔还报错 huaweicloud.xxxx未找到
-
请问如何发布jar包到华为maven仓库?让其他开发者可以通过maven使用我的jar包。
-
构建的时候怎么配置mavne的settings.xml已经添加配置Maven私有依赖库
-
#化鲲为鹏,我有话说#如何打/解包使用jdk/bin/jar.exe工具,配置完环境变量后直接使得jar命令即可。jar命令格式jar {c t x u f }[ v m e 0 M i ][-C 目录]文件名...{ctxu},这四个参数必须选选其一。[v f m e 0 M i],这几个是可选参数,文件名也是必须的。参数 | 说明 ---|--- -c | 创建一个jar包 -t | 显示jar中的内容列表 -x | 解压jar包 -u | 添加文件到jar包中 -f | 指定jar包的文件名 -v | 输出详细报告 -m | 指定MANIFEST.MF文件 -0 | 生成jar包时不压缩内容 -M | 不生成清单文件MANIFEST.MF -i | 为指定的jar文件创建索引文件 -C | 可在相应的目录下执行命令关于MANIFEST.MF定义:https://baike.baidu.com/item/MANIFEST.MF演示往jar包添加文件jar uf xxx.jar BOOT-INF/classes/application.yml解压jar包jar -xvf xxx.jar打jar包,不生成清单文件,不压缩jar -cvfM0 xxx.jar BOOT-INF/ META-INF/ org/或者jar -cvfM0 xxx.jar *
-
在使用maven/ant编译时,经常会遇到找不到jar导致编译报错的问题:类似出现“Could not transfer artifact”“Failed to collect dependencies”“Could not resolve dependencies”等关键字的报错:像这种问题,一般出现的原因有以下几点:1、maven远程仓链接不上;2、maven远程仓没有对应的jar或者pom出现这种问题的解决办法一般是更换maven远程仓或者去其他maven仓找对应的jar或者pom,下载下来,替换到本地maven仓库。例如:解决方法:这个问题是由于从远端仓库下载jetty-util-6.1.26.hwx.jar失败,应该是从https://repository.apache.org/content/repositories/snapshorts下载不到对应的jar包。可以去https://repo.huaweicloud.com/repository/maven找对应的jar包和pom文件,并放到本地仓库对应的路径下。从报错信息可以看出,jar包的本地路径是~/.m2/repository/org/mortbay/jetty/jetty-util/6.1.26.hwx,对应的远端仓库路径则是:https://repo.huaweicloud.com/repository/maven/org/mortbay/jetty/jetty-util/6.1.26.hwx/jetty-util-6.1.26.hwx.jar 。可以看出来,远端仓库的路径和本地仓库路径是一一对应的。后续如果再出现这样的问题,也可以参考这样修改。不过记得要将jar包对应的pom文件也下载下来放到本地仓库。
推荐直播
-
HDC深度解读系列 - Serverless与MCP融合创新,构建AI应用全新智能中枢2025/08/20 周三 16:30-18:00
张昆鹏 HCDG北京核心组代表
HDC2025期间,华为云展示了Serverless与MCP融合创新的解决方案,本期访谈直播,由华为云开发者专家(HCDE)兼华为云开发者社区组织HCDG北京核心组代表张鹏先生主持,华为云PaaS服务产品部 Serverless总监Ewen为大家深度解读华为云Serverless与MCP如何融合构建AI应用全新智能中枢
回顾中 -
关于RISC-V生态发展的思考2025/09/02 周二 17:00-18:00
中国科学院计算技术研究所副所长包云岗教授
中科院包云岗老师将在本次直播中,探讨处理器生态的关键要素及其联系,分享过去几年推动RISC-V生态建设实践过程中的经验与教训。
回顾中 -
一键搞定华为云万级资源,3步轻松管理企业成本2025/09/09 周二 15:00-16:00
阿言 华为云交易产品经理
本直播重点介绍如何一键续费万级资源,3步轻松管理成本,帮助提升日常管理效率!
回顾中
热门标签