【问题标题】:Problem making ant compile my classes present in different Eclipse projects into single destination Directory问题使 ant 将不同 Eclipse 项目中存在的类编译到单个目标目录中
【发布时间】:2010-03-30 14:26:59
【问题描述】:

我的 Eclipse 工作区中有近 20 个项目。 它们是相互依存的。 现在我想将它们全部构建在一个单一的战争文件中。 事情是 Eclipse 做得很好......如果我创建一个动态 Web 项目并链接所有 20 个项目的源。 但我想自动化整个过程,并希望能够运行脚本(可能是蚂蚁......)并在我的应用服务器中部署战争。

我的方法:我从一个简单的方法开始。我尝试使用目标目录作为我的战争的 web-inf 顺序构建每个项目(javac 任务)。 但它给了我奇怪的错误,比如:未找到包“****”,当它在类路径中显示相同的所有必需类时(我使用了详细)

您是否认为,持续集成引擎更适合我的情况(20 个项目..) 看过Team City,但第一次没看懂……

【问题讨论】:

    标签: java ant integration


    【解决方案1】:

    我所知道的所有 CI 引擎都需要您有一个可用的 Ant build.xml 才能工作。如果你不能让你的引擎正常工作,CI 引擎也帮不了你。

    “奇怪”的错误?如果 Ant 在抱怨,这意味着您假设的某些事情是正确的,但事实并非如此。相信蚂蚁。停止认为你做对了,深入了解它告诉你的内容。

    您的 20 个项目可能是相互依赖的,但我怀疑它们是否需要放在一个包中。它们都是您创建并添加到 WAR 中的独立 JAR 吗?如果是这样,我会先编写 Ant 脚本来创建每个 JAR。让它们工作,然后在创建最终 WAR 之前复制到目标 WEB-INF/lib。

    您自动执行此操作的本能很好。把它分解成更小的步骤。在我看来,您编写了一个冗长而复杂的 build.xml,您现在无法调试。退回并从简单的事情开始(例如,编译一个项目并为其创建一个 JAR),然后将这些较小的步骤组合成您想要的更大、更复杂的整体。

    【讨论】:

    • 感谢您的回复。为所有单个项目构建 jar 并将它们添加到 war 中的想法已经出现在我的脑海中,但我认为如果我可以将所有这些构建到一个 jar 中或直接将它们编译到一个 war 中会更好。只是我不希望任何程序障碍以完全自动化的方式出现。 :)
    【解决方案2】:

    我终于能够按照我的要求编写合适的脚本了。 我没有为每个项目使用单独的 jar,而是直接使用我所有项目的所有类构建了一个单一的战争。 我之前在设置类路径时犯了一个愚蠢的错误。我解决了这个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多