【问题标题】:Eclipse doesn't resolve classes from external jarEclipse 不解析来自外部 jar 的类
【发布时间】:2018-11-15 09:46:07
【问题描述】:

我有一个我构建的服务项目并将 jar 添加到我的其他项目 libs 文件夹中。

我已经添加了jar gradle.build

flatDir { dirs 'libs' }
compile('com.vadr:vadr-aps-client:0.0.1-SNAPSHOT')

添加到类路径并在项目和外部依赖项文件夹中可见的 jar

但我仍然无法构建应用程序,并且 Eclipse 也显示无法解析为我在外部 jar 中的类的类型错误。 外部 jar 是用 gradle(gradlew build) 构建的

【问题讨论】:

  • 您是否亲自查看过这个 jar 并确保类文件确实在它应该在的位置?
  • @nitind 是的,我已经提取了 jar,并且可以看到所有具有正确包名的类。我尝试在 Eclipse 中多次刷新、重建。
  • 没有忘记导入吗? XD
  • 当你通过 gradle 构建它时会发生什么?如果它构建,有时,删除项目而不从实际光盘中删除并重新导入可以解决此类问题。
  • @Zannith 它也没有显示导入。它无法解析导入。所以导入和类都有错误。可以用 gradle 创建 jar 并将其用作外部 jar 吗? (P.S:我已经安装了 jar 并使用 mavenLocal() 导入它,它工作正常但我无法将应用程序推送到云端,因为 jar 仅在 maven 本地 repo 中可用)

标签: java eclipse gradle build


【解决方案1】:

将 jar 放在某个资源文件夹中,例如 src/main/resources/lib。在您的build.gradle 中添加以下内容:

dependencies {
.
.
.
    compile files('src/main/resources/lib/vadr-aps-client-0.0.1-SNAPSHOT.jar')
.
.
}

【讨论】:

  • 还是有同样的问题。我可以看到 jar 的路径在它从资源/lib 文件夹获得的构建路径中更新。我尝试了此链接中的所有方法stackoverflow.com/questions/20700053/…
  • 只是为了确定,您是否提供了 jar 的确切名称?不是名称:版本模式?
  • 在 Eclipse 中构建之前不要忘记right click project -> gradle -> Refresh Gradle Project
  • 是的,我复制粘贴了 jat 名称编译文件('src/main/resources/libs/vadr-aps-client-0.0.1-SNAPSHOT.jar')并且我创建了 lib 文件夹为'库' .是的,我做了几次 gradle refresh。做了几个清理项目,刷新项目并从 Eclipse 中删除项目并重新导入它。还是没有解决
  • 我最后的建议是在导入期间删除所有 generated 的 eclipse 和 gradle 相关文件,然后从工作区构建并再次导入。
猜你喜欢
  • 1970-01-01
  • 2012-07-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-09
  • 2014-12-30
相关资源
最近更新 更多