Я использую MacOS Mojave с IntelliJ Ultimate 2018.2.
Я написал приложение go, которое загружает файл конфигурации из каталога моего проекта.Я создал функцию InitConfig()
для загрузки файла JSON в структуру.это код моего Config.go
файла
package main
import (
"github.com/tkanos/gonfig"
"log"
)
type Configuration struct {
WebServerPort int
DbName string
DbUser string
DbPassword string
DbPort int
CertFile string
KeyFile string
EnableHttps bool
}
var AppConfiguration Configuration
func InitConfig() {
AppConfiguration = Configuration{}
err := gonfig.GetConf(ExPath + "/config/config.json", &AppConfiguration)
if err != nil {
log.Fatalf("could not parse configuration file: %v",err)
}
}
Я использую переменную с именем ExPath
, которая содержит текущий каталог исполняемого двоичного файла, я создал его с помощью следующего кода (Path.go):
package main
import (
"log"
"os"
"path/filepath"
)
var ExPath string
func InitPath() {
ex, err := os.Executable()
if err != nil {
log.Fatalf("could not get executable path: %v",err)
}
ExPath = filepath.Dir(ex)
}
Когда я пытаюсь запустить или отладить приложение, intellij создает каталог, в котором он компилирует и запускает приложение, как я могу сказать ему также скопировать файл json?
когда я пытаюсь запустить / отладить мое приложение, я получаю:
could not parse configuration file: open /private/var/folders/60/qzt2pgs173s4j_r6lby_mw1c0000gn/T/config/config.json: no such file or directory
Я проверил, и этот каталог действительно не содержит моего каталога конфигурации.Итак ... есть ли способ сообщить Intellij, что он должен скопировать его перед выполнением моего проекта?
спасибо!