我们正在从Java8迁移到Java11。
我们有一个遗留项目Y,它依赖于另一个遗留项目X。
项目X没有来源,它只是大约300个罐子的集合。
构建是基于ant的,没有maven。
我现在无法使用JDK 11构建项目Y(既不在Eclipse中,也不在外部),因为它说“包org.w3c.dom可以从多个模块访问:,java.xml”
我在Eclipse中的一行中得到了这个错误,它确实导入了org。w3c。dom。文件
当我进行外部构建(使用ant,在Eclipse之外)时,我可以成功构建(使用与JDK 8下基本相同的build.xml)?!为什么只有月食在抱怨?!这是因为我在下面引用的javac错误吗。
我在这里阅读(这些与我的问题直接相关):
https://stackoverflow.com/a/53824670/2300597
包org.w3c.dom可以从多个模块访问:
但我仍然无法修复这些构建问题<我尝试了7-8种不同的方法,但没有任何帮助。
我认为冲突发生在来自这300个jars中的一些的org.w3c.dom
包和JDK模块java.xml
中的相同包之间。
奇怪的是org.w3c.dom.Document
似乎不存在于这300个jar中的任何一个中,只是来自同一个包的其他类存在于jar中。
我陷入僵局,我看不到解决这个问题的方法。
我不能轻易更改项目X,因为它是多个遗留项目使用的共享库。
另一方面,我无法从项目Y的构建路径中删除java.xml
模块。
所以我不知道如何处理这个问题。
难道没有办法说:好吧,先使用JDK中的类,然后使用JAR中的类(即使它们共享相同的包,但它们不是相同的类)。
修复这些错误的正确方法是什么?
从版本9开始,Java支持JPMS(Java平台模块系统)。
在Java平台模块系统中,不允许在多个模块中使用同一个包。因此,解决方案是找到导出此包的模块(JAR)。w3c。并删除其中的一个模块或包。
问题内容: 从某人的项目中,我收到此错误: 我有最新的JDK(jdk1.6.0_25)。据我了解,我可以执行以下操作之一: 下载J2SE-1.5环境以匹配项目。 编辑项目以与最新的JDK保持一致。 我怎样才能做到这一点? 问题答案: 这是一个很好的讨论: 如何在1.5兼容模式下使用JDK 1.6 基本上你应该 下载并安装1.5 JDK。(下载链接) 在Eclipse中,转到 窗口 → 首选项 →
我是maven的新手,并用hello World创建了一个简单的maven项目。当我尝试运行Maven项目时,它会说:- [错误]尚未为此生成指定目标。必须指定有效的生命周期阶段或格式为:或:[:]:的目标。可用的生命周期阶段有:验证、初始化、生成源、过程源、生成资源、过程资源、编译、过程类、生成测试源、过程测试源、生成测试资源、过程测试资源、测试编译、过程测试类、测试、准备包、包、集成前测试、集
我的应用程序(Postgres)中有7个不同的模式,我做了两次迁移来更改列,一次影响A模式,另一次影响公共模式。我想知道这种意外行为的原因。
在我的xamarin Android应用程序上得到以下错误。请帮助我解决这个问题。 C:\程序文件(x86)\msbuild\xamarin\android\xamarin.android.common.targets(5,5):错误MSB4018:“LinkAssemblies”任务意外失败。xamarin.android.xamarinandroidException:错误XA2006:无法解
我们正在将我们的项目从Java8迁移到Java11。其中一个API依赖于使用JAXB的库。正如我们所知,JAXB是从JAVA11中删除的,我们开始在库的POM中包含JAXB依赖项。 当我们运行API项目时,一切正常 mvn spring boot:运行 但是,当API部署在QA服务器中,并使用带有- java-jar Sample-api 3.0.0-SNAPSHOT. jar 当调用依赖于JAX
我正在使用flyway命令行工具来处理我的db迁移。到目前为止,所有迁移都是sql 配置文件(仅用于选项): 那很好用。 但是现在我需要添加一个基于java的迁移。我真的很困惑,我找不到任何如何做的例子。如何编译,在哪里放java迁移。 我尝试了简单的迁移类从官方留档: 但是接下来怎么办?尝试编译: 然后把罐子放在不同的地方,没有效果。 flyway信息-看不到迁移。 因此,如何构建最简单的基于j