【问题标题】:How to generate Ant and Maven build files for an Eclipse Java project?如何为 Eclipse Java 项目生成 Ant 和 Maven 构建文件?
【发布时间】:2015-03-06 02:20:55
【问题描述】:

我有一个项目是这样发布的:

  • 从 Eclipse 导出为 jar 文件。
  • 用exe4j打包成EXE文件。

现在我正在使用一些静态代码分析工具,需要使用 ant 或 maven 构建项目。

似乎 Ant 和 Maven 都依赖于一些构建文件,那么如何从我的 Eclipse 项目中生成它呢?

我尝试了 Eclipse Export -> Ant Buildfile,但导出的构建文件似乎仍然依赖于 Eclipse 内置构建器

也许我错了,但我对构建器服务器的理解应该包括:

  • 蚂蚁
  • JDK
  • 源代码待建

每当签入新源时,都可以启动 Ant 以使用 JDK 构建源。不应涉及日食。

我是新手。请提供一些启示。

【问题讨论】:

  • 您将不得不编写 ant 文件。它不是自动生成的。由您指定代码在哪里,从哪里编译类并将类文件保存到等等。

标签: eclipse maven ant build eclipse-jdt


【解决方案1】:

最简单的解决方案是在 Eclipse 中通过右键单击项目并选择 Export --> Ant Buildfiles 导出到 Ant 构建文件。

这将创建一个构建文件,其中包含用于构建项目的默认目标,以及可用于运行程序的目标。例如,如果您已经在 Eclipse 中定义了运行配置来运行main 方法,那么将创建一个允许您从 Eclipse 外部运行程序的目标。如果您定义了一个 JUnit 运行配置来运行某个测试,则导出还会生成一个目标来从外部运行该测试。

转换为 Maven 需要更多的工作——AFAIK 没有官方工具或向导可以让您从现有的 Eclipse 项目生成完整的 POM 配置。您可以通过右键单击项目并选择 Configure --> Convert to Maven Project 来转换为 Maven 项目,但这只会生成 POM 文件并允许选择 Maven 坐标。依赖和插件配置需要手动添加。

如果您仍需要根据项目的 .classpath 自动将依赖项添加到您的 POM 中,我发现 this project(虽然没有尝试过)似乎可以完成这项工作。

【讨论】:

    【解决方案2】:

    如果您想将项目转换为 Maven,您可以右键单击该项目并按照图片进行操作。

    然后你会得到 pom.xml(Maven 项目中的配置文件)。

    并且在 pom.xml 中你必须配置你在项目中需要的依赖和插件来实现你想要做的事情。例如,要使用您的项目创建一个 .exe 文件,您可以在 thread 中看到我的答案

    【讨论】:

    • 感谢您的回复。 Eclipse 已经知道项目的依赖文件。此信息被序列化为.classpath 文件。在我将项目转换为 maven 项目后,maven 托管依赖项似乎仍然是空的。那么我需要手动添加所有依赖项吗?为什么 Eclipse m2e 插件不会自动执行?
    • 如何知道 Eclipse 你想要在你的项目中使用哪个版本的依赖?这可能是原因之一。是的,您必须手动添加依赖项。我鼓励你看看 maven 手册。这里有依赖机制 --> maven.apache.org/guides/introduction/…
    • 其实我希望 Eclipse 可以根据现有的 .classpath 文件填写 Maven 依赖项,因为该文件反映了项目当前的依赖项。
    • 你不能那样做。 Maven 使用外部(和本地)存储库,您必须遵循这种工作方式。我认为 Eclipse 及其 .classpath 文件不足以填充 Maven 中的 pom.xml。这就是为什么你必须在 pom.xml 中添加依赖项(组/依赖项/版本)。
    【解决方案3】:

    将项目更改为 Gradle 或 Maven(我更喜欢 Gradle,它就像 Maven 和 Ant 的最佳组合)是一个“大”步骤(实际上更像是一个“中等”步骤),但可能会为您提供良好的服务从长远来看,这是一种战略选择。话虽如此,如果您真的只想要一个快速生成 Ant 脚本的战术选项,那么使用 Eclipse 的导出向导就对了。

    Export > Ant Buildfiles 是起点,只需确保取消选中“使用 Eclipse 编译器创建目标以编译项目”选项在那个向导中。生成的 Ant 文件应该没有任何 Eclipse 要求,这意味着它应该可以在没有 Eclipse 的情况下从命令行运行。

    【讨论】:

      猜你喜欢
      • 2011-02-14
      • 1970-01-01
      • 2011-03-09
      • 1970-01-01
      • 2011-07-28
      • 2011-02-12
      • 2010-11-30
      • 2012-10-11
      • 1970-01-01
      相关资源
      最近更新 更多