【问题标题】:How to run a maven build from go lang code如何从 go lang 代码运行 maven 构建
【发布时间】:2017-11-08 06:54:52
【问题描述】:

我需要运行使用go lang 构建的maven,而无需将maven 安装到正在运行的系统中。通过使用go 中的os.exec 包,我可以运行已经在我的PATH 变量中定义的任何程序。但是在PATH 变量中设置M2_HOME 在这里不是一个选项,我在特定位置提取了maven 分布。根据here 中给出的答案,可以通过提供mvn 的特定位置来运行maven 构建,我如何从go 实现相同的目标。
提前致谢

【问题讨论】:

  • 什么操作系统?您是否尝试将特定位置的 完整路径 传递给 exec.Command 参数,例如your/specific/folder/mvn?请提供您的代码 sn-ps 用于执行命令,如果有错误,请向我们显示错误消息。
  • 您是假设目标机器上已经安装了maven,还是将maven 分发包与您的软件捆绑在一起?
  • 另见os.ExpandEnv

标签: maven go build command


【解决方案1】:

与@putu 的评论以及将所需的maven 目标一一指定为exe.Command() 的单独参数一样,我能够在不安装maven 或设置M2_HOME 的情况下运行maven 构建$PATH 变量。以下是任何试图实现相同目标的人的代码 sn-p。

// Use os package to run the maven build using location where maven(headless) resides
func updateDistribution() error {
    command := exec.Command("apache-maven-3.5.2/bin/mvn", "clean", "install")
    command.Dir = "."
    output, err := command.Output()
    if err != nil {
        return err
    }
    fmt.Printf("%s", output)
    return nil
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-12
    • 1970-01-01
    • 2021-01-17
    • 2020-06-21
    • 1970-01-01
    • 2019-09-02
    • 1970-01-01
    相关资源
    最近更新 更多