前言
下载了unix版本的nexus: nexus-3.29.2-02-unix.tar.gz
在启动时发现会报以下错误:
Unresolved requirements: [[com.sun.jna.platform [224](R 224.0)] osgi.wiring.bundle; (&(osgi.wiring.bundle=com.sun.jna)(bundle-version>=4.5.0))]
at org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4149)
应该是树莓派的jdk对jna的支持有问题,参考资料:
https://community.sonatype.com/t/nxrm3-3-23-3-03-failed-to-start-with-exception-unable-to-resolve-com-sun-jna-platform/4387
https://github.com/bhamail/pinexus/issues/5
https://github.com/java-native-access/jna
尝试安装了oracle的arm64位版本发现并不能使用。
在docker中安装
发现Nexus已经有制作好的基于树莓派的docker镜像,就不再自己折腾了,直接pull下来使用就行。
https://hub.docker.com/r/klo2k/nexus3
如果不想把数据放在容器里面,可以在启动时挂载数据目录到 /nexus-data
docker run -d -p 8081:8081 -v /home/pi/data/sonatype-work/nexus3:/nexus-data --name nexus --privileged=true klo2k/nexus3
挂载之前记得把目录用户和组权限设置为 200:200
chown 200:200 sonatype-work -R
查看了下,镜像中使用的是ubuntu的jdk:
nexus@1eed9dde2e9a:/$ java -version
openjdk version "1.8.0_275"
OpenJDK Runtime Environment (build 1.8.0_275-8u275-b01-0ubuntu1~20.04-b01)
OpenJDK Client VM (build 25.275-b01, mixed mode)