You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@flink.apache.org by "Chesnay Schepler (Jira)" <ji...@apache.org> on 2020/07/02 16:36:00 UTC

[jira] [Assigned] (FLINK-18458) Setting the property java.version makes the build brittle and harder to debug.

     [ https://issues.apache.org/jira/browse/FLINK-18458?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Chesnay Schepler reassigned FLINK-18458:
----------------------------------------

    Assignee: Niels Basjes

> Setting the property java.version makes the build brittle and harder to debug.
> ------------------------------------------------------------------------------
>
>                 Key: FLINK-18458
>                 URL: https://issues.apache.org/jira/browse/FLINK-18458
>             Project: Flink
>          Issue Type: Improvement
>          Components: Build System
>            Reporter: Niels Basjes
>            Assignee: Niels Basjes
>            Priority: Minor
>              Labels: pull-request-available
>
> In the pom.xml (in various places) the property java.version is used containing the version of the jdk that is to be used.
> There is however also a system property java.version which contains something "similar yet slightly different". This is the java version actually used.
> This makes the exact value in this property quite brittle.
> For example the profile activation in maven can be done using the *<jdk>*  which looks at the +system+ property java.version which is different from the property java.version.
>  * [https://github.com/apache/maven/blob/master/maven-compat/src/main/java/org/apache/maven/profiles/activation/JdkPrefixProfileActivator.java#L36]
> Also the maven-enforcer-plugin is used with the clause
> {{<requireJavaVersion>}}
> {{   <version>${java.version}</version>}}
> {{</requireJavaVersion>}}
> Here also this rule effectively compares the system property with the regular property with the same name to see if they match.
>  * [https://github.com/apache/maven-enforcer/blob/master/enforcer-rules/src/main/java/org/apache/maven/plugins/enforcer/RequireJavaVersion.java#L46]
>  * [https://github.com/apache/commons-lang/blob/master/src/main/java/org/apache/commons/lang3/SystemUtils.java#L529]
> So although it works it also makes it impossible to debug which java.version is used by the various plugins as the value shown on the screen is always a different value.
> The change is very simple: do no use java.version as a custom property.
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)