我正在尝试用Maven构建Geonetwork。源代码在这里:https://github.com/geonetwork/core-geonetwork/tree/3.10.x
我遵循以下教程来构建Geonetwork:https://geonetwork-opensource.org/manuals/trunk/eng/users/tutorials/introduction/deployment/build.html
但是当我构建它时,出现了以下错误:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project common: Compilation failure: Compilation failure:
[ERROR] /C:/Users/mn/Downloads/core_geonetwork/core-geonetwork-3.10.x/common/src/main/java/org/fao/geonet/utils/GeonetHttpRequestFactory.java:[59,24] cannot find symbol
[ERROR] symbol: class PreDestroy
[ERROR] location: package javax.annotation
[ERROR] /C:/Users/mn/Downloads/core_geonetwork/core-geonetwork-3.10.x/common/src/main/java/org/fao/geonet/utils/Xml.java:[70,22] package javax.xml.bind does not exist
[ERROR] /C:/Users/mn/Downloads/core_geonetwork/core-geonetwork-3.10.x/common/src/main/java/org/fao/geonet/utils/Xml.java:[71,22] package javax.xml.bind does not exist
[ERROR] /C:/Users/mn/Downloads/core_geonetwork/core-geonetwork-3.10.x/common/src/main/java/org/fao/geonet/utils/GeonetHttpRequestFactory.java:[72,6] cannot find symbol
[ERROR] symbol: class PreDestroy
[ERROR] location: class org.fao.geonet.utils.GeonetHttpRequestFactory
[ERROR] /C:/Users/mn/Downloads/core_geonetwork/core-geonetwork-3.10.x/common/src/main/java/org/fao/geonet/utils/Xml.java:[376,9] cannot find symbol
[ERROR] symbol: class JAXBContext
[ERROR] location: class org.fao.geonet.utils.Xml
[ERROR] /C:/Users/mn/Downloads/core_geonetwork/core-geonetwork-3.10.x/common/src/main/java/org/fao/geonet/utils/Xml.java:[376,35] cannot find symbol
[ERROR] symbol: variable JAXBContext
[ERROR] location: class org.fao.geonet.utils.Xml
[ERROR] /C:/Users/mn/Downloads/core_geonetwork/core-geonetwork-3.10.x/common/src/main/java/org/fao/geonet/utils/Xml.java:[377,9] cannot find symbol
[ERROR] symbol: class Unmarshaller
[ERROR] location: class org.fao.geonet.utils.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/MojoFailureException
[ERROR]
[ERROR] After correcting the problems, you can resume the build with the command
[ERROR] mvn <args> -rf :common因此,javax.annotation包似乎有一些问题。我在这里尝试了这个提示:https://stackoverflow.com/a/63268748/5621619,但它没有帮助。我还试着根据这个答案替换插件存储库:https://stackoverflow.com/a/53853896/5621619,但它没有帮助。
我的Java版本如下:
java version "15.0.1" 2020-10-20
Java(TM) SE Runtime Environment (build 15.0.1+9-18)
Java HotSpot(TM) 64-Bit Server VM (build 15.0.1+9-18, mixed mode, sharing)我的Maven版本如下:
Java HotSpot(TM) 64-Bit Server VM warning: Ignoring option MaxPermSize; support was removed in 8.0
Apache Maven 3.6.3 (cecedd343002696d0abb50b32b541b8a6ba2883f)
Maven home: C:\opt\apache-maven-3.6.3\bin\..
Java version: 15.0.1, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-15.0.1
Default locale: de_CH, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"如何才能运行此构建过程?
发布于 2020-12-07 04:37:35
此版本的GeoNetwork需要使用Java8,这就是为什么会出现编译错误的原因。您需要安装Java8,然后将JAVA_HOME配置为Java8。
发布于 2021-02-06 00:43:51
@穆罕默德·贾法尔是正确的,因为在按照https://geonetwork-opensource.org/downloads.html的说明构建Geonnetwork时需要Java8。我遇到了同样的问题,并能够通过执行以下命令来解决
export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)参考:What is the installation path of AdoptOpenJDK 8.232 in appVeyor in the macos image?
如果您还没有安装Java 8,brew使安装变得很简单,并且只需要运行
brew install --cask adoptopenjdk8https://stackoverflow.com/questions/64786891
复制相似问题