当尝试 mvn clean install -> 出现错误包不存在
Posted
技术标签:
【中文标题】当尝试 mvn clean install -> 出现错误包不存在【英文标题】:When try to mvn clean install -> an error package does not exist appear 【发布时间】:2020-12-26 18:37:13 【问题描述】:我一直在尝试做:mvn clean install
在一个依赖外部 jar 的项目上,但得到了:
Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.5.1:testCompile (default-testCompile) on project automation-service: Compilation failure: Compilation failure:
[ERROR] /C:/Checkouts/Release-4.0/test-service-intelligence/service-automation-service/src/test/java/com/company/automation/steps/BasicsSteps.java:[16,53] package com.company.service.automation.databaseaccess does not exist
/C:/Checkouts/Release-4.0/test-service-intelligence/service-automation-service/src/test/java/com/company/automation/steps/BasicsSteps.java:[43,13] cannot find symbol
[ERROR] symbol: class IdentifierIndexRepository
奇怪的是,这在我的同事 MAC 上成功执行(尽管他使用的是完全不同的 IDE、工具和东西。例如,他使用的是 X-Code IDE、ZULU 8 JDK、Maven 3.5)。首先我认为这是一个JDK问题并将JDK切换为与他的相同:ZULU 8,然后我尝试了他的Apache Maven版本并从3.6降级到3.5。最后我绝望地从 Intelij Idea 切换到 Eclipse -> 没有任何帮助。
似乎丢失的包来自成功提供的外部依赖项 jar - 我可以在外部库中看到它,在尝试 mvn clean install
之前也没有未解决依赖项的迹象(mvn clean compile
成功通过)
POM 中的依赖声明如下:
<dependency>
<groupId>com.company.da.fid.resolve</groupId>
<artifactId>automation-database-access</artifactId>
<version>1.0-SNAPSHOT</version>
<classifier>jar-with-dependencies</classifier>
</dependency>
和这样的 maven-compiler-plugin:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>8</source>
<target>8</target>
</configuration>
</plugin>
依赖.jar文件包含他自己的依赖。
任何人有想法或线索可能会发生在我身上吗?
提前致谢。
【问题讨论】:
通常不鼓励使用jar-with-dependencies
作为依赖项。
@JF***Meier,请告知我除了 jar-with-dependencies 之外的其他选择是什么?如果需要,我渴望重新处理这个 .jar。
如果您想从命令行运行 JAR(可执行 JAR、胖 JAR),通常使用 jar-with-dependencies
。对于依赖项,您只需使用“通常”的 JAR。 Maven 会自动解析传递依赖,因此您无需将所有依赖打包到一个 JAR 中。
@AngelElenkov 有什么解决方案吗?我也面临同样的问题。
【参考方案1】:
从错误日志中可以看出,您缺少依赖项com.company...
。在我看来,它是您正在使用的自定义库。如果你有源代码,做库的clean install
然后在主项目上。
如果您在本地有一个损坏的包(依赖项),则可能会发生这种情况。要检查这一点,请转到 .m2 文件夹并验证您是否拥有它,如果有,请删除并尝试再次运行 clean install
。
【讨论】:
依赖项是一个自定义库(jar 文件),它正确位于我的本地 m2 存储库中,并且从那里成功下载。我试过多次删除并重新安装,唉,没有成功。 @AngelElenkov 有什么解决方案吗?我也面临同样的问题。以上是关于当尝试 mvn clean install -> 出现错误包不存在的主要内容,如果未能解决你的问题,请参考以下文章
“mvn clean install”和“mvn clean verify install”有啥区别?
“mvn clean install”与“mvn install”有何不同?
mvn clean install 在做测试时卡住了 - 我错过了啥?
mvn clean package install deploy