【问题标题】:Better way to add the dependency projects to the classpath?将依赖项项目添加到类路径的更好方法?
【发布时间】:2016-01-14 18:58:51
【问题描述】:

我正在使用 Eclipse IDE 开发一个 java 应用程序,我有两个项目 SampleProject1 和 SampleProject2,SampleProject2 依赖于 SampleProject1。 我找到了添加依赖项目的两种方法。 1) 制作一个 SampleProject1 jar 并将其包含在 SampleProject2 库中,并带有以下类路径条目。 2) 导出 SampleProject1 的源代码,如下所示 如果我的理解不正确,请告诉我?

查询: 1)添加依赖项目哪个最好? 2)在第二种方法中,“combineaccessrules="false"是什么意思?真的需要吗?

【问题讨论】:

  • 您是否在使用任何类型的构建工具? (例如 Maven、Gradle)
  • 有一段时间没有使用 Ant,但是您应该能够创建一个多模块设置,其中一个模块依赖于另一个模块。也许这个问题和答案有帮助stackoverflow.com/q/2596746/2928051
  • 我认为我们不应该考虑使用 ANT 来回答我的问题,这与包含依赖项的更好方法有关。
  • 我想你已经提到了一个很好的解决方案。制作一个 SampleProject1 的 jar 并将其包含在 SampleProject2 库中。唯一的缺点是,如果您有更多依赖项,手动操作会变得很麻烦且容易出错。这是像 Ant 和 Ivy、Maven、Gradle 这样的工具进来并为您自动化它。如果我对您有任何误解,请纠正我。
  • 是的@IndrekOts,你是对的,但我们可以指出源代码

标签: java eclipse classpath


【解决方案1】:

要告诉 Eclipse 依赖关系,您可以将 SampleProject2 中的 Java Build Path 设置为需要 SampleProject1

一步一步:

  1. 右键单击 Java 项目(在本例中为SampleProject2
  2. 选择Properties
  3. 在属性中,选择左侧的Java Build Path
  4. 选择Projects 标签。
  5. Add...
  6. 选择依赖项目(本例中为SampleProject1
  7. OK 直到关闭所有内容。
  8. 它现在应该适合您了。

这是您的上述目的地的屏幕截图:

工作示例

拿两个项目来命名。这是我在磁盘上的内容(不包括非 java 和 .project 文件):

$ find * -name *.java -o -name .project
RemoteSystemsTempFiles/.project
SampleProject1/.project
SampleProject1/src/com/example/sampleproject1/UsefulClassNeededElsewhere.java
SampleProject2/.project
SampleProject2/src/com/example/sampleproject2/ClassThatNeedsSomethingUseful.java

ClassThatNeedsSomethingUseful:

package com.example.sampleproject2;

import com.example.sampleproject1.UsefulClassNeededElsewhere;

public class ClassThatNeedsSomethingUseful {
    private UsefulClassNeededElsewhere useful = new UsefulClassNeededElsewhere();

    public UsefulClassNeededElsewhere getUseful() {
        return useful;
    }
}

UsefulClassNeededElsewhere:

package com.example.sampleproject1;

public class UsefulClassNeededElsewhere {

}

最后如上所述建立依赖关系。这应该使一切正常,您的工作区应该如下所示:

如您所见,没有错误标记。

注意事项

您仍然需要构建系统来了解这种依赖关系。即您的 Ant 文件或其他文件需要知道。一些构建系统在 Eclipse 中具有出色的工具,因此依赖关系将从构建系统中计算出来,而不是在设置中手动复制。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-18
    • 2014-11-18
    • 1970-01-01
    • 1970-01-01
    • 2014-01-09
    • 2017-01-14
    • 1970-01-01
    • 2022-07-09
    相关资源
    最近更新 更多