maven-wrapper icon indicating copy to clipboard operation
maven-wrapper copied to clipboard

[MWRAPPER-161] Fails to run when executed using `sh`

Open jira-importer opened this issue 8 months ago • 1 comments

Volkan Yazici opened MWRAPPER-161 and commented

Several projects don't allow executable files in their version control system due to platform compatibility concerns. For instance, OpenJDK doesn't allow executables to be committed in Git repositories[1]. Hence, Maven Wrapper should be runnable as an argument to sh, though it is not:

sh mvnw
mvnw: 109: cannot open mvnw/.mvn/wrapper/maven-wrapper.properties: No such file

due to the following line:

"${0%/*}/.mvn/wrapper/maven-wrapper.properties"

I expect there to be more issues due to $0 usage assuming the script is executed as an executable – did not check.   [1] See the Executable files are not allowed (file: mvnw) error generated by the Skara bot of OpenJDK in this PR attempting to integrate Maven Wrapper to JMH: https://github.com/openjdk/jmh/pull/154


Affects: 3.3.2

jira-importer avatar Apr 04 '25 12:04 jira-importer

Piotr Karwasz commented

I guess that

"$(dirname "$0")/.mvn/wrapper/maven-wrapper.properties"

should be used instead of the variable expansion. It is POSIX-2008, so it should work in all environments.

jira-importer avatar Apr 04 '25 13:04 jira-importer