【问题标题】:How to execute maven plugins from gradle without having maven and java installed如何在不安装 maven 和 java 的情况下从 gradle 执行 maven 插件
【发布时间】:2017-12-08 05:30:28
【问题描述】:

我需要在没有同时安装mavenjava 的系统上执行maven plugin,并且不能在系统上同时安装它们。在寻找方法时,我发现通过使用gradle,我们可以构建甚至不需要gradle 来执行的可执行二进制文件,这非常适合我的情况:)。有没有办法通过使用gradle 来执行maven 插件。在此先感谢

【问题讨论】:

    标签: java maven gradle plugins build.gradle


    【解决方案1】:

    Maven 和 Gradle 也需要 Java。

    您可以像使用 Gradle 一样使用 Maven Wrapper

    在项目目录中执行此命令(这将创建像在 gradle 中一样的可执行脚本)

    mvn -N io.takari:maven:wrapper
    

    要在未安装 maven 的情况下调用此项目,请使用:

    ./mvnw GOAL
    

    【讨论】:

      【解决方案2】:

      Gradle 是一个构建系统。您可以使用它构建任何东西,包括原生二进制文件。

      是的,您可以从 Gradle 调用 Maven 插件,因为 Maven 插件是用 Java 编写的,而 Gradle 是基于 Groovy 的,因此也是基于 Java 的。

      但这两个事实彼此无关。

      当然,您也可以使用 Gradle(或任何其他构建系统,包括手动将事物组合在一起)来构建包含 Java 运行时环境的可分发文件。但是,如前所述,Java 是随您的结果一起提供的。没有 Java 就无法运行 Java 代码,除了将 Java 代码移植到 C++ 之类的编译为本机二进制文件的其他东西上。

      是的,如果您进行一些粘合,您也可以从本机代码调用 Java 代码,但不,如果没有 Java,这也将无法工作,因为 Java 就是这样工作的。

      【讨论】:

      • 你可以从 Gradle 调用 Maven 插件??
      • 为什么不呢? Maven 插件就是 Java 类,所以你可以调用它们。搜索适合 DSL 的相应 Gradle 插件通常会更好,但它应该仍然可以工作。
      • 感谢您的回答。你真的试过了吗?我很惊讶,因为当我在网上搜索时,似乎到处都说这是不可能的
      • 当然不是,恕我直言,这样做很荒谬,当然也很丑陋。但我不知道为什么它不应该工作,它是一个 Java 类。您不能像在 Maven 中那样使用它,只需说出您发现的 apply this Maven plugin,但使用支持 Maven 类的 Java 类应该是可能的。通常应该没有理由走丑陋和繁琐的方式。如果是自定义插件,最好为 Gradle 重写,使用起来会好很多。如果是 3rd 方插件,请搜索替代品或要求他们提供 Gradle 插件。你想用什么插件。
      • 我不完全确定它们是 java 类这一事实是否足以在 Gradle 中运行它们。由于它们是插件,因此可能需要一些 maven 逻辑才能使其工作
      【解决方案3】:

      Maven 和 Gradle 都需要安装 java。见https://docs.gradle.org/current/userguide/installation.html

      【讨论】:

      • 是的,Java 需要编译,但需要java 来运行从gradle 创建的本机二进制文件
      • AFAIK,gradle 只会为 java 创建可执行的 jar 文件,而不是本地二进制文件。这似乎与他们在docs.gradle.org/3.3/userguide/native_software.html 的文档一致
      猜你喜欢
      • 1970-01-01
      • 2019-12-08
      • 2014-09-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多