【问题标题】:How to reference a different Java project in Eclipse如何在 Eclipse 中引用不同的 Java 项目
【发布时间】:2012-04-22 20:47:16
【问题描述】:

我有 Project1 和 Project2。 Project1 依赖于 Project2。 我有点累,每次在Project2中进行一些代码更改,我都必须导出Project2 JAR文件,并将其复制到Project1的lib文件夹中。

有没有办法自动实现这一点?或者,有没有其他方法可以让 Project1 知道 Project2 发生了一些变化?

在项目的构建路径中,有一种方法可以指定对工作区中其他项目的引用,但这似乎没有任何作用?它的实际作用是什么?

我在某处读到我可以使用部署属性来自动化这个过程,但我找不到它。

更新: 呃,我是 C# 开发者,有一些 Java 开发(主要是 Android 开发)的经验,我可能会问一些愚蠢的问题,所以请多多包涵……

Project1 是标准 Java 项目(在客户端机器上运行,使用 swing 等)。 Project2 是动态 Web 项目(对我来说原因不明)。它唯一做的就是调用 webservice(我不需要担心的第三个项目)并将结果传递回 Project1。 Project2 包含那些 Axis2 webserviceStub.java 文件......每个人都知道然后,我必须重新创建这些存根文件,然后我必须导出 JAR 文件并将其移动到 Project1。 Project2,虽然是Web Project,但实际上是在客户端运行的代码。

构建路径中的简单项目引用对我不起作用。

谢谢

【问题讨论】:

  • “对 Workspace 中其他项目的引用”应该可以工作。
  • 您也可以进入项目属性并勾选“是库”,然后像Project1中的任何其他外部库一样引用它。
  • 是的,在构建路径中执行此操作对我有用。你可能错过了一步。

标签: java eclipse reference project


【解决方案1】:

右击Project1,然后点击Properties。在出现的对话框中,选择 Java Build Path,然后单击 Projects 选项卡。在那里,将 Project2 添加到构建路径。

如果Project1 是一个网络应用程序,您需要确保您的部署程序集(相同的Properties UI)具有Project2 那里也是。

【讨论】:

  • 在生成存根文件后尝试刷新两个项目(右键单击 -> 刷新),看看是否有帮助。此外,如果存根位于 Project2 中某个单独的 src 目录(来自主 src 目录),请确保该目录也在 Project2 的“Java 构建路径”的“订购和导出”选项卡中导出。
  • 谢谢。刷新成功了。现在,问题是......当我要将 Project1 部署到客户端时,我是否必须包含 Project2 的 JAR 文件?为什么原始程序员会选择复制 JAR 文件来进行项目引用?
  • 取决于您将如何构建 Project1 以进行部署。如果您只是通过 Eclipse 从 Project1 生成 jar 文件,我相信您也可以在 jar 导出时包含来自 Project2 的类(只需在 UI 中选择它们)。如果有一些构建部署包的 ant 脚本,那么 JAR Project2 会简单得多,并将其作为部署的一部分包含在内。
  • 哇,我的代码在执行此操作后才消失,并且该死的工作。谢谢。#
  • 您能否说明这与选择依赖项目的“项目引用”有何不同。
【解决方案2】:

在 Eclipse 中,当构建 Java 项目时,源文件夹中的每个 .java 文件都会被编译,.class 文件会保存到输出文件夹中。源文件夹中的非 java 文件原封不动地复制到输出文件夹中的相应文件夹层次结构中。

当通过Java Build Path在Eclipse的工作空间中添加“引用项目”时,即将Project2添加到Project1的构建路径,你是什么实际上是告诉项目构建器在构建Project1 时使用Project2 的输出文件夹(注意:不仅是输出文件夹,还有导出的库)。

所以如果kozyr 的回答对你不起作用,请检查Project2 的“输出文件夹”配置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-07-31
    • 1970-01-01
    • 1970-01-01
    • 2013-02-01
    • 1970-01-01
    • 1970-01-01
    • 2014-06-03
    • 1970-01-01
    相关资源
    最近更新 更多