gpt4 book ai didi

java - Linux 上的 IntelliJ 使用错误的依赖版本

转载 作者:太空宇宙 更新时间:2023-11-04 04:58:07 25 4
gpt4 key购买 nike

所以我有一个非常奇怪的问题。我有一个项目在从 IntelliJ 部署到 Linux 上时使用了错误的依赖项版本。如果我在Windows上构建war文件并将其部署在Linux上的tomcat中,那就没问题了。如果我使用 IntelliJ 在 Windows 中部署该项目,那就没问题了。

我已经从 Windows 版本导入了该项目。我已经从存储库重新下载了该项目并从头开始配置。我已经删除了 Maven 存储库并重新同步。我已经改变了maven版本。我已将排除项添加到我知道导致问题的依赖项中。我相信我已经尝试过这一切。

我指定并需要的插件是:

    <dependency>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
<version>1.9</version>
</dependency>

导致冲突的插件是 org.eclipse.birt.runtime,我尝试为其 commons-codec 添加排除项,但它仍然被拉出:

    <dependency>
<groupId>org.eclipse.birt.runtime</groupId>
<artifactId>org.eclipse.birt.runtime</artifactId>
<version>4.4.2</version>
<exclusions>
<exclusion>
<groupId>commons-codec</groupId>
<artifactId>commons-codec</artifactId>
</exclusion>
</exclusions>
</dependency>

导致错误的代码:

String authEncoding = Base64.encodeBase64String((user + ":" + pass).getBytes());
httpGet.addHeader("Authorization", "Basic " + authEncoding);

在我的代码中,我输入了以下内容来查看正在使用哪个版本:

System.out.println(Base64.class.getProtectionDomain().getCodeSource().getLocation());

输出是:

file:/home/user/WORK/Modules/myproject/target/myproject/WEB-INF/lib/org.apache.commons.codec-1.3.0.jar

我不知道如何解决这个问题。

编辑:添加更多详细信息

Edit2:只需在 Windows 中进行双重检查,即可正确提取“org.apache.commons.codec-1.9.0.jar”。所以我不知道为什么在 Linux 上会发生这种情况。

最佳答案

我发现了这个问题。这是 Linux 版本 IntelliJ 中的一个错误。这是我当前使用的版本:

IntelliJ IDEA 2016.3
Build #IU-163.7743.44, built on November 17, 2016
JRE: 1.8.0_112-release-408-b2 amd64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

仅当使用分解的 Artifact 并直接从 IntelliJ 部署时才会出现此问题。

如果我从命令行构建它就可以正常工作。

如果我将 IntelliJ 构建为 war Artifact ,那么它就可以正常工作。

如果我部署为运行或调试配置并不重要,只有当我从 IntelliJ 部署为分解配置时才会出现此问题。

我已与 Jetbrains 联系,他们要求我提交错误报告。所以这是一个合法的问题。

感谢所有试图提供帮助的人。

关于java - Linux 上的 IntelliJ 使用错误的依赖版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com