Canonicalizes paths when attempting to compensate for odd mvnw
working-directory echo bug
#1155
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There is an odd bug in some
mvnw
wrappers (particularly the one generated by the Spring Initializr) where it prints out the current directory name. This bug affects the Scaffold-Jib integration as Skaffold requestsmvnw jib:_skaffold-files
. For example:A consequence is that Skaffold then monitors the entire source directory and picks up files from the build, and continuously triggers new builds.
To compensate, the Scaffold-Jib dependencies parser compares each path to the workspace directory. But there are two problems:
context
field value and is usually relative to the current working directory, whereas the files reported byjib:_skaffold-files
are absolute./Users/bsd/Projects/skaffold-jib
to/Users/bsd/Manumitting/Projects/skaffold-jib
. So just usingfilepath.Abs
is insufficient as it does not expand symlinks.This patch adds a
util.Canonical(path)
method that attempts to expand a provided path, and uses this new method to compare canonicalized paths.