[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16542678#comment-16542678 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » master #34 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/master/34/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > Fix For: 3.7.1 > > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16536129#comment-16536129 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-320 #11 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-320/11/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > Fix For: 3.7.1 > > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16536111#comment-16536111 ] Hudson commented on MCOMPILER-323: -- Build succeeded in Jenkins: Maven TLP » maven-compiler-plugin » master #33 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/master/33/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16536069#comment-16536069 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #16 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/16/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16536029#comment-16536029 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #14 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/14/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16535916#comment-16535916 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #13 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/13/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16535906#comment-16535906 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #12 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/12/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16535894#comment-16535894 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #11 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/11/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16535888#comment-16535888 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #10 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/10/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16535878#comment-16535878 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #9 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/9/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16535870#comment-16535870 ] Hudson commented on MCOMPILER-323: -- Build failed in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #8 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/8/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16484551#comment-16484551 ] Hudson commented on MCOMPILER-323: -- Build succeeded in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #3 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/3/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16480806#comment-16480806 ] Hudson commented on MCOMPILER-323: -- Build succeeded in Jenkins: Maven TLP » maven-compiler-plugin » MCOMPILER-323 #2 See https://builds.apache.org/job/maven-box/job/maven-compiler-plugin/job/MCOMPILER-323/2/ > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Assignee: Robert Scholte >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16479603#comment-16479603 ] Mike Drob commented on MCOMPILER-323: - Mapping the source directories to unique output directories and compiling them in a separate pass makes sense to me (as described in his next blog post). bq. Creating mrjars will be complex and should be avoided Agree with the first part. Disagree that it needs to be avoided... That's why folks are coming out and asking for tooling for it. We don't have to wait for the unit testing to get easy, or IDE support to get there before we figure out how to support MR jars. If we make MR jars possible, then I believe that surefire executions and IntelliJ integration and all the other missing pieces will follow eventually. As is right now, nobody knows how to take the first step. > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16479551#comment-16479551 ] Robert Scholte commented on MCOMPILER-323: -- I've been inspired by Russels http://www.russgold.net/sw/2018/03/looking-for-mr-good-jar/ while improving https://github.com/codehaus-plexus/plexus-languages/issues/5 and it works quite well. There's only one huge BUT: the fix for plexus-languages works because we have a Travis CI-server which verifies multiple Java versions. And this also means that the unittests are verified for a specific Java version as well. Downside: IDE doesn't understand it and sees it as a duplicate class. Please take a look at the blog and see what matches your situation best. Creating mrjars will be complex and should be avoided. However, if you need it we should be able to configure several execution blocks properly to reach the goal. I'm still interested in the solutions others have. And this should be possible without buildhelper-maven-plugin, just maven-compiler-plugin and execution-blocks (and ignore the testing part, that's an issue for another plugin) > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16479408#comment-16479408 ] Mikaël Geljić commented on MCOMPILER-323: - Hi there, I'm adding my vote to this one. I also don't expect a single compiler execution. What's annoying me is that typically those additional source directories are added through the build-helper plugin; and the compiler plugin just eats it all and passes that to the javac {{sourcepath}} ({{…/src/main/java:…/src/main/java9:…/target/generated-sources/annotations:}}). All we have is exclude filters, which may work for {{module-infos}}, but by splitting the source dirs we already shift to compile arbitrary java9 sources \*with jdk9 apis\*; filtering by package/class-name is not an option, especially as with JEP-238 sources are supposed to overlay one another. Excludes are only relative to source roots and this is what's limiting here. Would the compiler plugin consider more awareness of source dirs? Or would it be kept away as a build-helper plugin concern? Re: the multi-module approach, I don't buy it, as it generates tons of fuss maven-wise and slightly ruins the purpose of the JEP which was to address those different artifact coordinates per java target release. Long term maybe we can come up with high level config/convention to trigger multiple compilations & test-runs. Yet for now re: unit-testing, I'd say that's as much a concern of separate surefire executions upon src/test/java vs. src/test/java9... in case that's what's blocking here. :) Cheers, Mika > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16364819#comment-16364819 ] Robert Scholte commented on MCOMPILER-323: -- If you care less about ensuring all unittests work with the specified Java version, you should have a look at [https://github.com/RedHatJava9Testing/multi-release.] This is a single Maven project setup which generates a multirelease jar. > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16364678#comment-16364678 ] Mike Drob commented on MCOMPILER-323: - Oh, I see what you're saying. I don't think it matter if there are multiple execution blocks? One execution per language compilation level makes sense. Having to make a multi-module build is the part that i find unappealing. Most projects i work on are already multi-module, and fairly complex, and adding an extra dance for MR compilation would be not be an easy feat. > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16362882#comment-16362882 ] Robert Scholte commented on MCOMPILER-323: -- I know the purpose and advantages of MR Jars, I'm just not convinced there's a clean solution possible with only one execution block > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16362835#comment-16362835 ] Mike Drob commented on MCOMPILER-323: - MR Jars are useful for example when the old jar uses some Unsafe code and new code uses VarHandles but you want to decouple your dev from when the admins are going to be upgrading Java versions on the servers. > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)
[jira] [Commented] (MCOMPILER-323) Support multi-release jars
[ https://issues.apache.org/jira/browse/MCOMPILER-323?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=16361315#comment-16361315 ] Robert Scholte commented on MCOMPILER-323: -- I've had a look in the past and came to the conclusion that this would introduce way too much magic. Right now every execution blocks will execute the java compiler exactly once. A multirelease jar will always require multiple java compiler calls. I still think that multirelease jars should be avoided and only be used when there's a very good reason for it. Assuming those projects are experienced Maven users, they should be able to resolve it already right now. My biggest concern is actually not compiling a MRJAR, but unttesting it with all the Java versions. For that reason [~hboutemy] came with a pattern: [https://github.com/hboutemy/maven-jep238] Downside is that it is a multimodule Maven project, however every module is tested with the correct Java version. If you still think this can be solved properly, I'm all ears. > Support multi-release jars > -- > > Key: MCOMPILER-323 > URL: https://issues.apache.org/jira/browse/MCOMPILER-323 > Project: Maven Compiler Plugin > Issue Type: Improvement >Reporter: Mike Drob >Priority: Major > > Java 9 allows for JRE version specific code in the form of "multi-release > jars" > Older JREs will treat them as normal jars, while newer JREs will load the > appropriate specific classes. AFAICT, maven does not currently support this. > Compiler plugin should automatically detect when there are multiple source > levels and set MRJAR=True in the manifest. > Source directories could potentially be src/main/java, src/main/java9, > src/main/java10, etc. These probably need to be configurable as well, or some > deeper discussion about what makes sense and is intuitive for users. -- This message was sent by Atlassian JIRA (v7.6.3#76005)