当尝试 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

如何在eclipse中使用mvn clean install

Run “mvn clean install” in Eclipse