2017-11-08 12 views
0

実行中のシステムにmavenをインストールせずにgo langを使用してmavenをビルドする必要があります。 goos.execパッケージを使用すると、すでにPATH変数に定義されているプログラムを実行することができます。しかしM2_HOMEPATH変数に設定することはオプションではなく、特定の場所でmavenの配信を抽出しています。 hereで与えられた答えによれば、特定の場所mvnを提供することによってmavenビルドを実行することができます。これはどのようにしてgoから達成するのですか? @putuによってコメントで、私はmavenをインストールまたは$PATH変数にM2_HOMEを設定せずにmavenビルドを実行することができたexe.Command()に別々の引数として1で必要とされるmaven目標1を指定すると同様に、事前go langコードからのMavenビルドの実行方法

+1

どのようなOSですか?特定の場所の*フルパス*を 'exec.Command'引数に渡してみましたか? 'your/specific/folder/mvn'?コマンドを実行するためのコードスニペットを提供してください。エラーがある場合は、エラーメッセージを表示してください。 – putu

+0

'maven'がすでにターゲットマシンにインストールされていると仮定しますか、' maven'ディストリビューションをあなたのソフトウェアにバンドルしますか? –

+0

[os.ExpandEnv](https://golang.org/pkg/os/#ExpandEnv)も参照してください。 – Peter

答えて

0


感謝。以下は同じものを達成しようとする人のためのコードスニペットです。

// 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 
} 
関連する問題