当前位置: 首页 > 知识库问答 >
问题:

Maven build在构建Geonetwork时失败

巫马刚洁
2023-03-14

我正在尝试使用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似乎有一些东西。注释。我在这里尝试了这个提示: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"

如何运行此生成过程?

共有2个答案

巩俊远
2023-03-14

@Mohamed Jaafar是正确的,因为按照https://geonetwork-opensource.org/downloads.html.我遇到了同样的问题,通过执行

export JAVA_HOME=$(/usr/libexec/java_home -v 1.8)

参考:macos镜像中appVeyor中的AdoptOpenJDK 8.232的安装路径是什么?

如果您还没有Java 8,brew可以简化安装,只需要运行

brew install --cask adoptopenjdk8

参考:如何在Mac上安装Java 8

融烨华
2023-03-14

GeoNetwork的这个版本需要使用Java 8,这就是为什么会出现编译错误。您需要安装Java 8,然后将Java_HOME配置为Java 8。

 类似资料:
  • GeoNetwork opensource 是一个标准化的分布式空间信息管理平台,设计用于访问具有空间特征的数据库、地图产品以及相关各种来源的元数据,从而促进基于因特网的空间信息交换与共享。这种地理信息管理方式旨在便于各界用户快速查找和获取已有的空间数据和专题地图等信息资源,以用于决策支持。 包括卫星影像衍生产品在内的所有地图是信息交流的有效工具,在诸多用户的工作中具有重要作用,包括: 决策者:如

  • 我正在构建一个聊天应用程序flutter页面,我的Textfield/Send按钮行不断消失,我得到以下错误... 'package:flutter/src/rendering/box.dart':断言失败:第1446行pos 12:'havs size':RenderBox未布局:renderpointerlistener#da9fd needs-layout needs-paint 该页面构建

  • 失败:生成失败,出现异常。 出了什么问题:任务'执行失败:app: check DebugAarMetadata'。 发生多个任务操作失败:执行com时发生故障。Android建筑格雷德尔。内部的任务。CheckAarMetadataWorkAction > 尝试:使用--stacktrace选项运行以获取堆栈跟踪。使用--info或--debug选项运行以获得更多日志输出。运行--扫描以获得完整

  • 弗兰: 当尝试在VS2012中构建安装时(这甚至不涉及其他构建错误,但让我们从这里开始),我得到: 错误21错误C2228:“.serialize”的左侧必须具有class/struct/union D:\flann-1.8.4-src\flann-1.8.4-src\src\cpp\flann\util\serialization.h行18:type.serialize(ar);错误24错误LN

  • 在我的应用程序中包含CN1Bluetooth代码后,我收到了一个构建失败。它在lib文件夹中,已经刷新了。在Android上工作,不会为iOS编译。 CompileC/var/folders/p7/d3z112yd0156kxkm2p21p8ym0000gn/t/build6615573583221835807xx/dist/build/build/mederationates/pods.buil

  • 问题内容: 我已经设置了一个Jenkins服务器来运行Selenium测试。生成脚本是用Ant(CentOS 6.3上的v 1.7.1)编写的,并且测试在Sauce Labs上运行。我通过外壳执行构建: 问题是测试失败时,詹金斯(Jenkins)将其标记为成功。我可以通过将设置为来避免这种情况,请参阅: 但是,这并不理想,因为Jenkins会在遇到第一个故障时终止构建。构建完成后是否可以检查失败,