Closed mpern closed 3 years ago
@mpern How would users be able to override the JAVA_HOME
environment variable manually?
In which cases would the exec-env
script be executed?
Just wondering if this change would have adverse effects on users of asdf-java
.
Maybe it's just me, but I do not want to manage JAVA_HOME
manually.
Setup the env to run the binaries in the package. Source: https://asdf-vm.com/#/plugins-create?id=binexec-env
You use set-env
to setup all env vars as required for the binaries (and as consequence, for the shims generated by asdf)
asdf-direnv uses the exec-env
script to prepare the per-directory environment based on the .tools-version
file in that dir.
e.g.
cd project-foo
direnv: using asdf nodejs lts
direnv: using asdf java sapmachine-11.0.11
direnv: using asdf direnv 2.28.0
direnv: export +JAVA_NOME ~PATH
not sure when would a user want to set JAVA_HOME to something different than the value provided by this plugin's exec-env. it makes no sense to use the tools provided by this plugin and use a totally different location for JAVA_HOME.
anyways if we'd like users to be able to set their java home we could have the exec-env file do something like export JAVA_HOME="${JAVA_HOME:-"this_plugin_installation_java_home"}"
not sure when would a user want to set JAVA_HOME to something different than the value provided by this plugin's exec-env. it makes no sense to use the tools provided by this plugin and use a totally different location for JAVA_HOME.
Imagine a user would like to start a program with a different JAVA_HOME
because it requires a JDK which isn't supported by asdf-java
.
But I think I misunderstood how exec-env
is working in the first place. If the java
(or any other) shim isn't executed, the exec-env
script wouldn't be executed, would it?
anyways if we'd like users to be able to set their java home we could have the exec-env file do something like
export JAVA_HOME="${JAVA_HOME:-"this_plugin_installation_java_home"}"
Yes, this could be an option. 👍
But I think I misunderstood how exec-env is working in the first place. If the java (or any other) shim isn't executed, the exec-env script wouldn't be executed, would it?
exactly!
exec-env is for shims etc. managed by asdf
Let's get this merged please :slightly_smiling_face:
IMHO the plugin should set
JAVA_HOME
for all commands.Bonus:
Exporting
JAVA_HOME
inexec-env
makes the plugin play nice with asdf-direnv