【问题标题】:Maven Jar dependency is not coming automaticallyMaven Jar 依赖不会自动出现
【发布时间】:2016-11-18 13:19:21
【问题描述】:

我对 Maven 很陌生。 我有一个 Maven 项目。 当我使用 mvn clean -e install 创建执行时,它会在目标文件夹中为我的项目创建可执行 jar (commounutil.jar)。 不是我在 Eclipse 中有另一个项目(project2),它不是基于 Maven 的项目。 Project2 使用来自 commounutil.jar 的特性和类。 如果我使用 Java 构建路径/添加外部 jar 在 eclipse 中手动添加我的可执行 jar commounutil.jar。 但是即使在添加了这个 jar 之后,我的项目中仍然存在一些与 log4j 相关的错误。 现在,当我构建 commounutil 时,已经添加了 log4j 的依赖项。 它仍然给出编译时错误。 你能告诉我哪里出错了吗?

【问题讨论】:

  • 有什么错误?
  • 无法获取 log4j 的类
  • 错误是无法解析导入的org.apache
  • 上传您的 pom.xml 并显示您的错误并提供更多详细信息。考虑将 Project2 转换为 maven 项目,并在需要时将 project1 包含为依赖项

标签: java maven


【解决方案1】:

在您的 Eclipse 类路径中添加 log4j。 commonutils.jar,如果遵循maven提倡的模块化,只提供通用的utils类,不提供与其依赖相关的类。

也许您应该考虑将您的第二个项目更新为 maven 项目。

【讨论】:

  • 当我构建我的第一个项目时,依赖项已经存在。我想知道依赖项是否已经存在,那么项目 1 创建的目标 jar 应该自动包含该依赖项。我说的对吗?
  • dep 在 maven repo 中,所以不在类路径中。当您尝试构建第二个项目时,Eclipse 只能访问类路径中可用的类。
  • 我们同意您只在类路径中添加 commonUtils.jar。执行此操作时,CommonUtils.jar 中的类现在在编译时可用于使用 Eclipse 构建项目。现在,如果你打开这个 jar 并检查类目录,你将找不到任何与 log4j 相关的 .class。
  • 将项目 2 转换为 maven 项目并添加项目 1 作为依赖项解决了该问题。非常感谢大家的帮助:P
猜你喜欢
  • 1970-01-01
  • 2018-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多