KT-84386: Support Maven Toolchains in kotlin-maven-plugin#5694
Open
kralliv wants to merge 1 commit intoJetBrains:masterfrom
Open
KT-84386: Support Maven Toolchains in kotlin-maven-plugin#5694kralliv wants to merge 1 commit intoJetBrains:masterfrom
kralliv wants to merge 1 commit intoJetBrains:masterfrom
Conversation
Code Owners
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
YouTrack: KT-84386
Adds support for Maven Toolchains in the kotlin-maven-plugin. Design is analogous to the maven-compiler-plugin.
An explicitly set
jdkHomestill takes precedence over a toolchain, but a toolchain will take precedence over theJAVA_HOME. I made sure, that both of these cases are reflected in the logs to simplify debugging by user. The behaviour of builds in cases wherejdkHomeis not set but toolchains are present might be affected by this change, though that is the goal after all.The ugly part of this implementation is the retrieval of the JDK home path from a
Toolchain. NeitherToolchainnorJavaToolchainoffer any functions to query the JDK home itself, only the internalJavaToolchainImplhas a suitable function. However, as evidenced by the already deprecatedDefaultJavaToolChain, it probably is unwise to depend on these internals. I therefor opted to instead query thejavacexecutable path and traverse upwards from there. The structure of the JDK should be more reliable longterm.