As reported downstream in PyImageJ, scyjava sets the m2_repo to ~/.m2/repository by default. Although you can override it using scyjava.config.set_m2_repo, the upstream jgo library has a function jgo.m2_path which does as follows:
def m2_path():
return os.getenv("M2_REPO", (pathlib.Path.home() / ".m2").absolute())
In other words: it looks also at the M2_REPO environment variable, before falling back to ~/.m2.
This behavior in jgo is actually wrong because M2_REPO is supposed to point to the actual local Maven repository cache directory e.g. ~/.m2/repository, not the parent ~/.m2. So a fix is needed in jgo; see also apposed/jgo#99 which covers essentially the same issue for M2_HOME. Probably the m2_path function should be deprecated in favor of two functions m2_home and m2_repo instead.
And then what scyjava should do is ask jgo—once jgo yields the correct answer—what its default should be, so that it matches.
As reported downstream in PyImageJ, scyjava sets the
m2_repoto~/.m2/repositoryby default. Although you can override it usingscyjava.config.set_m2_repo, the upstream jgo library has a functionjgo.m2_pathwhich does as follows:In other words: it looks also at the
M2_REPOenvironment variable, before falling back to~/.m2.This behavior in jgo is actually wrong because
M2_REPOis supposed to point to the actual local Maven repository cache directory e.g.~/.m2/repository, not the parent~/.m2. So a fix is needed in jgo; see also apposed/jgo#99 which covers essentially the same issue forM2_HOME. Probably them2_pathfunction should be deprecated in favor of two functionsm2_homeandm2_repoinstead.And then what scyjava should do is ask jgo—once jgo yields the correct answer—what its default should be, so that it matches.