我有两个使用相同pom文件的项目(一个项目是第二个项目的早期版本)。第二个项目可以正常编译,并允许我在项目中使用pom中定义的所有依赖项。但是,第一个项目没有,并且似乎该项目甚至没有识别依赖项。
我查看了我的本地.m2文件夹,发现依赖项已下载到其各自的文件夹中。我什至看到mvn install
输出说它已经包含了依赖关系,例如:
Including com.fasterxml.jackson.core:jackson-core:jar:2.9.6 in the shaded jar.
后来……
com.fasterxml.jackson.core:jackson-databind:jar:2.9.6 already exists in destination.
我已经尝试过mvn clean
,但是依旧无法识别。我尝试检查项目中所有pom文件的内容,但看不到两个项目之间的任何区别。
我确信我的项目有问题,但我不是行家。关于在哪里寻找问题的想法?
下面是一个无法识别的依赖项的示例:
<dependency>
<groupId>com.google.code.gson</groupId>
<artifactId>gson</artifactId>
<version>2.4</version>
<scope>compile</scope>
</dependency>
这是我的mvn dependency:tree
输出
[INFO] SwirldsProxy:SwirldsProxy:jar:0.0.1-SNAPSHOT
[INFO] +- SwirldsPlatform:platform:jar:0.0.1-SNAPSHOT:compile
[INFO] | +- SwirldsPlatform:fc:jar:0.0.1-SNAPSHOT:compile
[INFO] | | +- SwirldsPlatform:fcfs:jar:0.0.1-SNAPSHOT:compile
[INFO] | | | +- SwirldsPlatform:fcutil:jar:0.0.1-SNAPSHOT:compile
[INFO] | | | | +- SwirldsPlatform:abcl-swirlds:jar:0.0.1-SNAPSHOT:compile
[INFO] | | | | +- org.abcl:abcl-contrib:jar:1.4.0:compile
[INFO] | | | | +- org.apache.derby:derby:jar:10.12.1.1:compile
[INFO] | | | | \- org.beanshell:bsh:jar:2.0b5:compile
[INFO] | | | \- SwirldsPlatform:fcfs-dep-fasl:jar:0.0.1-SNAPSHOT:compile
[INFO] | | +- SwirldsPlatform:fcdb:jar:0.0.1-SNAPSHOT:compile
[INFO] | | | \- SwirldsPlatform:fcdb-dep-fasl:jar:0.0.1-SNAPSHOT:compile
[INFO] | | \- junit:junit:jar:3.8.2:compile
[INFO] | +- com.offbynull.portmapper:portmapper:jar:2.0.4:compile
[INFO] | | +- org.apache.commons:commons-lang3:jar:3.4:compile
[INFO] | | +- commons-io:commons-io:jar:2.5:compile
[INFO] | | \- org.apache.commons:commons-collections4:jar:4.1:compile
[INFO] | +- org.slf4j:slf4j-nop:jar:1.7.21:compile
[INFO] | +- org.apache.logging.log4j:log4j-api:jar:2.7:compile
[INFO] | \- org.apache.logging.log4j:log4j-core:jar:2.7:compile
[INFO] +- com.fasterxml.jackson.core:jackson-databind:jar:2.9.6:compile
[INFO] | +- com.fasterxml.jackson.core:jackson-annotations:jar:2.9.0:compile
[INFO] | \- com.fasterxml.jackson.core:jackson-core:jar:2.9.6:compile
[INFO] +- com.google.code.gson:gson:jar:2.4:compile
[INFO] +- com.rabbitmq:amqp-client:jar:4.0.2:compile
[INFO] | \- org.slf4j:slf4j-api:jar:1.7.21:compile
[INFO] \- com.github.davidmoten:flatbuffers-java:jar:1.6.0.2:compile
Apache Maven 3.5.0 Maven
Java版本:1.8.0_144-1-redhat
更新8/30/2018
所以我发现了一些相互干扰的行为。我的项目位置在D:\ SomeDirectory下。我尝试将其移动到C:\ AnotherDirectory并执行mvn install
和bingo,现在我的项目可以使用依赖项了。
我假设这与maven / java安装位置有关,但是我感到奇怪的是,即使在项目位于另一个根目录下,尝试运行maven命令时也没有看到错误。 :)与maven / java(C :)相比。
有什么想法吗?