【问题标题】:Maven Build Failure - symbol: , location:Maven 构建失败 - 符号:,位置:
【发布时间】:2018-05-15 12:36:30
【问题描述】:

我有一个 maven 项目和另外两个来自同事的公共库项目。这就是为什么我想将这两个项目作为依赖项包含在我的项目中。

在我的 pom.xml 我有这个:

<dependency>
    <groupId>com.xxx.xxx.Tooling</groupId>
    <artifactId>KLUCommon</artifactId>
    <version>0.0.10-SNAPSHOT</version>
</dependency>
<dependency>
    <groupId>com.xxx.xxx.ldap</groupId>
    <artifactId>KLULdapAdapter</artifactId>
    <version>0.0.1-SNAPSHOT</version>
</dependency>

我构建了我的 maven 项目,但我总是得到错误:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:compile (default-compile) on project XXXXX: Compilation failure
[ERROR] /C:/Users/XXXX/Documents/workspace/XXXXX/src/main/java/com/xxx/xxx/ldap/Application.java:[19,38] cannot find symbol
[ERROR] symbol:   class ManagerDefs
[ERROR] location: package com.xxx.Tooling.common.model
[ERROR] -> [Help 1]

这可能是什么原因?因为在我自己的项目中,他承认该项目,但构建不起作用。

【问题讨论】:

    标签: java maven


    【解决方案1】:

    pom.xml 文件中的 Dependecy 标记只是说,构建特定应用程序还需要哪些项目(让我说parent project)。基本上,它只是检查是否还包括该项目-可以下载依赖项工件,例如。来自 maven 存储库,事实上,它们必须存在于父项目构建阶段的本地存储库中。

    因此,对于您自己的依赖项目,您必须先手动构建这些项目,工件将从您的本地存储库中获得,并且父项目将成功构建。

    请注意,当您安装时,依赖项不会构建 启动父项目构建。

    简单地说:

    • KLUCommon 上运行mvn clean install
    • KLULdapAdapter 上运行mvn clean install
    • 在父项目上运行mvn clean install

    更新! 我知道也可以进行“一个命令构建”,但我不记得它是怎么回事,这是关于 maven 模块的一些东西 - 请关注 maven doc 和这个 thread(#27689425) 或者 there(#38882221)

    【讨论】:

    • 顺便说一句,我不确定是否干净,它可能会擦除所有缓存的工件
    • 缓存的工件位于$HOME/.m2/repository 中,没有使用mvn clean 清理。 mvn clean 只会删除项目中的target 目录。
    • 哦,是的! @khmarbaise 是对的,这就是 clean 命令的工作原理:) 好点
    【解决方案2】:

    这只是说它无法为 ldap.jar 找到您的 Application.java。因此,请确保您首先使用 clean install maven 命令在 eclipse 或 netbeans 的同一工作区中构建这两个项目,然后最后构建您想要包含这些的项目。 并确保您在提到的项目中确实有 Application.java 文件。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-11-26
      • 1970-01-01
      • 2021-07-02
      • 2014-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多