import subpackages with golang, by importing parent dir?











up vote
0
down vote

favorite
1












I have this main.go file:



package main

import "one/entities/bar"

func main(){

}


I have this dir structure:



enter image description here



When I build my project with:



go install main


I get this compilation error:




src/main/main.go:3:8: no Go files in
/home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar




that error makes sense. Is there some way to import all the subpackages from within the one/entities/bar directory?



Something like this:



package main

import bar "one/entities/bar/*"

func main(){

}


(using some sort of * syntax and importing all subpackages in the bar namespace).



Ultimately I am trying do something like this:



package main

import (
"log"
"one/entities/bar"
)

func main(){

v := bar.Get.Basic.Req.Headers{}
log.Fatal(v)

}









share|improve this question
























  • Import statements imports a package. As long as the code inside the directory is of the same package, it is imported. You then can access it by packagename.<func/var>. Why would you subdivide single package to many? Is it necessary?
    – Chen A.
    Nov 17 at 22:16












  • @ChenA. yeah in the bar folder, I am going to have to generate a type alias that points to each branch in the folder tree, it sux, but what I have do I guess.
    – Alexander Mills
    Nov 17 at 22:17















up vote
0
down vote

favorite
1












I have this main.go file:



package main

import "one/entities/bar"

func main(){

}


I have this dir structure:



enter image description here



When I build my project with:



go install main


I get this compilation error:




src/main/main.go:3:8: no Go files in
/home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar




that error makes sense. Is there some way to import all the subpackages from within the one/entities/bar directory?



Something like this:



package main

import bar "one/entities/bar/*"

func main(){

}


(using some sort of * syntax and importing all subpackages in the bar namespace).



Ultimately I am trying do something like this:



package main

import (
"log"
"one/entities/bar"
)

func main(){

v := bar.Get.Basic.Req.Headers{}
log.Fatal(v)

}









share|improve this question
























  • Import statements imports a package. As long as the code inside the directory is of the same package, it is imported. You then can access it by packagename.<func/var>. Why would you subdivide single package to many? Is it necessary?
    – Chen A.
    Nov 17 at 22:16












  • @ChenA. yeah in the bar folder, I am going to have to generate a type alias that points to each branch in the folder tree, it sux, but what I have do I guess.
    – Alexander Mills
    Nov 17 at 22:17













up vote
0
down vote

favorite
1









up vote
0
down vote

favorite
1






1





I have this main.go file:



package main

import "one/entities/bar"

func main(){

}


I have this dir structure:



enter image description here



When I build my project with:



go install main


I get this compilation error:




src/main/main.go:3:8: no Go files in
/home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar




that error makes sense. Is there some way to import all the subpackages from within the one/entities/bar directory?



Something like this:



package main

import bar "one/entities/bar/*"

func main(){

}


(using some sort of * syntax and importing all subpackages in the bar namespace).



Ultimately I am trying do something like this:



package main

import (
"log"
"one/entities/bar"
)

func main(){

v := bar.Get.Basic.Req.Headers{}
log.Fatal(v)

}









share|improve this question















I have this main.go file:



package main

import "one/entities/bar"

func main(){

}


I have this dir structure:



enter image description here



When I build my project with:



go install main


I get this compilation error:




src/main/main.go:3:8: no Go files in
/home/oleg/codes/oresoftware/oredoc/test/builds/go/src/one/entities/bar




that error makes sense. Is there some way to import all the subpackages from within the one/entities/bar directory?



Something like this:



package main

import bar "one/entities/bar/*"

func main(){

}


(using some sort of * syntax and importing all subpackages in the bar namespace).



Ultimately I am trying do something like this:



package main

import (
"log"
"one/entities/bar"
)

func main(){

v := bar.Get.Basic.Req.Headers{}
log.Fatal(v)

}






go






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 17 at 22:12

























asked Nov 17 at 22:01









Alexander Mills

17k30146287




17k30146287












  • Import statements imports a package. As long as the code inside the directory is of the same package, it is imported. You then can access it by packagename.<func/var>. Why would you subdivide single package to many? Is it necessary?
    – Chen A.
    Nov 17 at 22:16












  • @ChenA. yeah in the bar folder, I am going to have to generate a type alias that points to each branch in the folder tree, it sux, but what I have do I guess.
    – Alexander Mills
    Nov 17 at 22:17


















  • Import statements imports a package. As long as the code inside the directory is of the same package, it is imported. You then can access it by packagename.<func/var>. Why would you subdivide single package to many? Is it necessary?
    – Chen A.
    Nov 17 at 22:16












  • @ChenA. yeah in the bar folder, I am going to have to generate a type alias that points to each branch in the folder tree, it sux, but what I have do I guess.
    – Alexander Mills
    Nov 17 at 22:17
















Import statements imports a package. As long as the code inside the directory is of the same package, it is imported. You then can access it by packagename.<func/var>. Why would you subdivide single package to many? Is it necessary?
– Chen A.
Nov 17 at 22:16






Import statements imports a package. As long as the code inside the directory is of the same package, it is imported. You then can access it by packagename.<func/var>. Why would you subdivide single package to many? Is it necessary?
– Chen A.
Nov 17 at 22:16














@ChenA. yeah in the bar folder, I am going to have to generate a type alias that points to each branch in the folder tree, it sux, but what I have do I guess.
– Alexander Mills
Nov 17 at 22:17




@ChenA. yeah in the bar folder, I am going to have to generate a type alias that points to each branch in the folder tree, it sux, but what I have do I guess.
– Alexander Mills
Nov 17 at 22:17












1 Answer
1






active

oldest

votes

















up vote
1
down vote



accepted










You can't do such thing, according to the specs of import:



The import names an identifier (PackageName) to be used for access and an 
ImportPath that specifies the package to be imported.

ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
ImportSpec = [ "." | PackageName ] ImportPath .
ImportPath = string_lit .


The import syntax requires a package name or path of a package. So no wildcard import.



This statement will clarify the why;



The PackageName is used in qualified identifiers to access exported 
identifiers of the package within the importing source file.


You must specify in which package the element you are referring to exists. e.g, bar.Get.Basic.Req.Headers. This can't be determined without an explicit import.






share|improve this answer





















    Your Answer






    StackExchange.ifUsing("editor", function () {
    StackExchange.using("externalEditor", function () {
    StackExchange.using("snippets", function () {
    StackExchange.snippets.init();
    });
    });
    }, "code-snippets");

    StackExchange.ready(function() {
    var channelOptions = {
    tags: "".split(" "),
    id: "1"
    };
    initTagRenderer("".split(" "), "".split(" "), channelOptions);

    StackExchange.using("externalEditor", function() {
    // Have to fire editor after snippets, if snippets enabled
    if (StackExchange.settings.snippets.snippetsEnabled) {
    StackExchange.using("snippets", function() {
    createEditor();
    });
    }
    else {
    createEditor();
    }
    });

    function createEditor() {
    StackExchange.prepareEditor({
    heartbeatType: 'answer',
    convertImagesToLinks: true,
    noModals: true,
    showLowRepImageUploadWarning: true,
    reputationToPostImages: 10,
    bindNavPrevention: true,
    postfix: "",
    imageUploader: {
    brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
    contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
    allowUrls: true
    },
    onDemand: true,
    discardSelector: ".discard-answer"
    ,immediatelyShowMarkdownHelp:true
    });


    }
    });














     

    draft saved


    draft discarded


















    StackExchange.ready(
    function () {
    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53355954%2fimport-subpackages-with-golang-by-importing-parent-dir%23new-answer', 'question_page');
    }
    );

    Post as a guest















    Required, but never shown

























    1 Answer
    1






    active

    oldest

    votes








    1 Answer
    1






    active

    oldest

    votes









    active

    oldest

    votes






    active

    oldest

    votes








    up vote
    1
    down vote



    accepted










    You can't do such thing, according to the specs of import:



    The import names an identifier (PackageName) to be used for access and an 
    ImportPath that specifies the package to be imported.

    ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
    ImportSpec = [ "." | PackageName ] ImportPath .
    ImportPath = string_lit .


    The import syntax requires a package name or path of a package. So no wildcard import.



    This statement will clarify the why;



    The PackageName is used in qualified identifiers to access exported 
    identifiers of the package within the importing source file.


    You must specify in which package the element you are referring to exists. e.g, bar.Get.Basic.Req.Headers. This can't be determined without an explicit import.






    share|improve this answer

























      up vote
      1
      down vote



      accepted










      You can't do such thing, according to the specs of import:



      The import names an identifier (PackageName) to be used for access and an 
      ImportPath that specifies the package to be imported.

      ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
      ImportSpec = [ "." | PackageName ] ImportPath .
      ImportPath = string_lit .


      The import syntax requires a package name or path of a package. So no wildcard import.



      This statement will clarify the why;



      The PackageName is used in qualified identifiers to access exported 
      identifiers of the package within the importing source file.


      You must specify in which package the element you are referring to exists. e.g, bar.Get.Basic.Req.Headers. This can't be determined without an explicit import.






      share|improve this answer























        up vote
        1
        down vote



        accepted







        up vote
        1
        down vote



        accepted






        You can't do such thing, according to the specs of import:



        The import names an identifier (PackageName) to be used for access and an 
        ImportPath that specifies the package to be imported.

        ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
        ImportSpec = [ "." | PackageName ] ImportPath .
        ImportPath = string_lit .


        The import syntax requires a package name or path of a package. So no wildcard import.



        This statement will clarify the why;



        The PackageName is used in qualified identifiers to access exported 
        identifiers of the package within the importing source file.


        You must specify in which package the element you are referring to exists. e.g, bar.Get.Basic.Req.Headers. This can't be determined without an explicit import.






        share|improve this answer












        You can't do such thing, according to the specs of import:



        The import names an identifier (PackageName) to be used for access and an 
        ImportPath that specifies the package to be imported.

        ImportDecl = "import" ( ImportSpec | "(" { ImportSpec ";" } ")" ) .
        ImportSpec = [ "." | PackageName ] ImportPath .
        ImportPath = string_lit .


        The import syntax requires a package name or path of a package. So no wildcard import.



        This statement will clarify the why;



        The PackageName is used in qualified identifiers to access exported 
        identifiers of the package within the importing source file.


        You must specify in which package the element you are referring to exists. e.g, bar.Get.Basic.Req.Headers. This can't be determined without an explicit import.







        share|improve this answer












        share|improve this answer



        share|improve this answer










        answered Nov 17 at 22:24









        Chen A.

        5,09721531




        5,09721531






























             

            draft saved


            draft discarded



















































             


            draft saved


            draft discarded














            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53355954%2fimport-subpackages-with-golang-by-importing-parent-dir%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown





















































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown

































            Required, but never shown














            Required, but never shown












            Required, but never shown







            Required, but never shown







            Popular posts from this blog

            If I really need a card on my start hand, how many mulligans make sense? [duplicate]

            Alcedinidae

            Can an atomic nucleus contain both particles and antiparticles? [duplicate]