загрузка файла конфигурации при запуске приложения go с intellij - PullRequest
0 голосов
/ 03 октября 2018

Я использую 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, что он должен скопировать его перед выполнением моего проекта?

спасибо!

1 Ответ

0 голосов
/ 03 октября 2018

кажется, что решение простое.все, что мне нужно, это установить «Выходной каталог» моей конфигурации run / debug в каталог моего проекта.а затем Intellij выполняет файл в том же каталоге, и он может найти /config/config.json.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...