Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/342.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Linux上的IntelliJ使用了错误的依赖项版本_Java_Linux_Maven_Intellij Idea - Fatal编程技术网

Java Linux上的IntelliJ使用了错误的依赖项版本

Java Linux上的IntelliJ使用了错误的依赖项版本,java,linux,maven,intellij-idea,Java,Linux,Maven,Intellij Idea,所以我有一个非常奇怪的问题。我有一个项目在从IntelliJ部署到Linux上时使用了错误的依赖项版本。如果我在Windows上构建war文件,并在Linux上的tomcat中部署它,那么就可以了。如果我使用IntelliJ在Windows中部署该项目,那么就可以了 我已从Windows版本导入该项目。我已经从repo重新下载了这个项目,并从头开始进行了配置。我已经删除了maven回购协议并重新同步。我改变了maven的版本。我已经在我所知道的导致问题的依赖性中添加了排除。我相信我都试过了 我指

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

我已从Windows版本导入该项目。我已经从repo重新下载了这个项目,并从头开始进行了配置。我已经删除了maven回购协议并重新同步。我改变了maven的版本。我已经在我所知道的导致问题的依赖性中添加了排除。我相信我都试过了

我指定并需要的插件是:

    <dependency>
        <groupId>commons-codec</groupId>
        <artifactId>commons-codec</artifactId>
        <version>1.9</version>
    </dependency>
在我的代码中,我放置了以下内容以查看正在使用的版本:

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上为什么会发生这种情况。

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

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
只有在使用分解的工件并直接从IntelliJ部署时,才会出现此问题

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

如果我从IntelliJ构建一个战争神器,那么它工作得很好

无论我是作为运行配置还是调试配置进行部署,问题只在我从IntelliJ作为分解配置进行部署时出现

我和Jetbrains联系过,他们要求我提交一份bug报告。所以这是一个合理的问题


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

检查org.eclipse.birt.runtime的transitve树,因为我假设有一个打包到…@khmarbaise中的commons编解码器版本已经做到了,是的,确实存在,这就是为什么我说birt插件导致了冲突。我还应该提到,我也在birt插件中添加了一个排除项,但它仍然将其引入。我已经更新了我的问题以包括排除。两个系统上的
.m2/settings.xml
文件是否相同?@EddieCurtis谢谢大家的帮助,请看我的答案provided@khmarbaise谢谢你的帮助,请看我的答案
file:/home/user/WORK/Modules/myproject/target/myproject/WEB-INF/lib/org.apache.commons.codec-1.3.0.jar
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