J'utilise Ultimate avec le plugin goland et dep. Je travaillais aussi en dehors de GOPATH. Habituellement, sans idée, j'utilise un script shell et Makefile pour construire le projet et j'en étais jusqu'à présent satisfait. L'idée avec l'intégration de dep m'oblige bien sûr à travailler à l'intérieur de GOPATH/src. Existe-t-il un moyen de configurer cet IDE pour exécuter un script shell qui simulera l'environnement du projet, définira GOPATH, GOBIN et rendre dep heureux et se débarrasser de ... is not within a known GOPATH/src et " les importations manquantes.

J'ai essayé de l'exécuter via ./build/env.sh idea . mais j'ai toujours des importations manquantes et ... is not within a known GOPATH/src. J'ai également essayé de jouer avec les paramètres du projet, il semble que rien ne puisse satisfaire cela gep.

Env.sh

#!/bin/sh

set -e

if [ ! -f "build/env.sh" ]; then
    echo "$0 must be run from the root of the repository."
    exit 2
fi

project="proj"
repositoryRoot="domain.com/username"

# Create fake Go workspace if it doesn't exist yet.
workspace="$PWD/build/_workspace"
root="$PWD"
dir="$workspace/src/$repositoryRoot"
if [ ! -L "$dir/$project" ]; then
    mkdir -p "$dir"
    cd "$dir"
    ln -s ../../../../../. $project
    cd "$root"
fi

# Set up the environment to use the workspace.
# Also add Godeps workspace so we build using canned dependencies.
GOPATH="$workspace"
GOBIN="$PWD/build/bin"

# Run the command inside the workspace.
cd "$dir/$project"
PWD="$dir/$project"

# Launch the arguments with the configured environment.
exec "$@"

Makefile

.PHONY: all test clean

GOBIN = build/bin

all:
    build/env.sh go get github.com/golang/dep/cmd/dep
    build/env.sh $(GOBIN)/dep ensure
    build/env.sh go build -v -o $(GOBIN)/proj
0
Alex 24 janv. 2020 à 16:39

1 réponse

Meilleure réponse

La réponse courte est non, vous ne pouvez pas. GoLand/IntelliJ IDEA Ultimate avec le plugin Go ne peut pas fonctionner de la manière souhaitée. Ils respectent la disposition Go Workspace, et vous devez structurer votre code comme tel.

Si vous passez de dep à Go Modules, vous pourrez créer votre projet n'importe où et ne pas avoir les mêmes restrictions que le mode GOPATH. Ici, vous pouvez en savoir plus sur travailler avec les modules Go< /a>.

0
dlsniper 24 janv. 2020 à 14:01