Just FYI, IBM, Zulu, Oracle and Microsoft are giving extended support to paying customers until the 2030s. I guess maven plugins will stay on 1.8 for quite a while, but that's just a guess. At least most libraries haven't moved to Java 11 yet (and afaik won't move to Java 11 in the near future).
There is no extended support available for Java 7 from most vendors (maybe Zulu?), and due to updates to the TLS stack, Java 1.7 has become quite unusable. I doubt that there is a good reason to support Java 1.7 now. Updating to Java 8 shouldn't be a big issue and will get you quite some performance gains. HTH Ben On Tue, 8 Jun 2021, 08:28 Tamás Cservenák, <ta...@cservenak.net> wrote: > Howdy, > > Let me state several things in advance first: > - ASF Maven project (the project) is an open source project maintained by > volunteers in their spare time. > - We (as a project) do not provide any kind of "support" or any of that > stuff. > > That said, Java 7 is EOLd in 2015, while Java 8 is EOLd in 2019, and yes, > we try to move to supported (read: freely available) Java versions. > > Hence, if you are stuck on Java 7, your best option is really to "lock > down" your plugin versions as well, and accept the fact that you are stuck > on your tooling as well. > > We, as a Java project, have upstream dependencies, and time is pressing us > also, as more and more projects move to Java 8 (if not to Java 11), that in > the same way prevents us from consuming the latest dependencies, hence, the > whole "flock" (ecosystem) has to follow the moving target. > > So, while there is no "general guideline" (aside that Maven CLI 3.x is Java > 7, Maven 4.x CLI will be Java 8, etc), due to large ecosystem (plugins in > ASF and outside) and plugin version numbers being "unbounded" (are per > plugins, not really bounded to Maven CLI), we try our best when we switch > plugin from Java 7 to something higher; it usually means minor or major > version update (so will not happen in a "patch release"), and pretty much > always will be present in release notes, just like it is in case of > maven-javadoc-plugin: > https://maven.apache.org/plugins/maven-javadoc-plugin/jira-report.html > > So, it is up to you to search thru release notes, and figure out which > plugin requires which version of Java. > > HTH > Tamas > > > On Tue, Jun 8, 2021 at 6:43 AM Rick Hanton <hant...@gmail.com> wrote: > > > Hi folks, > > > > Just wondering if someone can point me to any documentation about one of > > the following things: > > > > 1) Is there a high level direction among apache projects and particularly > > apache maven plugin projects to no longer build using the version 1.7 > JDK? > > I'm seeing similar changes to move away from Java 7 as I poke through > some > > projects like Surefire and maven-javadoc-plugin's latest builds/releases. > > This is creating some chaos for my company, where we typically use the > > maven-release plugin via the command-line, but rarely specify versions of > > the plugins it is dependent upon in our pom.xml files (allowing maven to > do > > its normal process of using the latest+greatest release version(s)). I > > presume other developers that still have code building with JDK 1.7 will > be > > in the same boat where their builds start failing with errors like the > one > > below. > > > > [INFO] [INFO] > > [INFO] [INFO] >>> maven-source-plugin:3.2.1:jar (attach-sources) > > > generate-sources @ xxxxxxx >>> > > [INFO] [INFO] > > [INFO] [INFO] <<< maven-source-plugin:3.2.1:jar (attach-sources) < > > generate-sources @ xxxxxxx <<< > > [INFO] [INFO] > > [INFO] [INFO] > > [INFO] [INFO] --- maven-source-plugin:3.2.1:jar (attach-sources) @ > xxxxxxx > > --- > > [INFO] [INFO] > > [INFO] [INFO] --- maven-javadoc-plugin:3.3.0:jar (attach-javadocs) @ > > xxxxxxx --- > > [INFO] [WARNING] Error injecting: > > org.apache.maven.plugins.javadoc.JavadocJar > > [INFO] java.lang.TypeNotPresentException: Type > > org.apache.maven.plugins.javadoc.JavadocJar not present > > [INFO] at org.eclipse.sisu.space.URLClassSpace.loadClass > > (URLClassSpace.java:147) > > [INFO] at org.eclipse.sisu.space.NamedClass.load > (NamedClass.java:46) > > [INFO] at org.eclipse.sisu.space.AbstractDeferredClass.get > > (AbstractDeferredClass.java:48) > > [INFO] at > com.google.inject.internal.ProviderInternalFactory.provision > > (ProviderInternalFactory.java:81) > > [INFO] at > > > com.google.inject.internal.InternalFactoryToInitializableAdapter.provision > > (InternalFactoryToInitializableAdapter.java:53) > > [INFO] at com.google.inject.internal.ProviderInternalFactory$1.call > > (ProviderInternalFactory.java:65) > > [INFO] at > > > com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision > > (ProvisionListenerStackCallback.java:115) > > [INFO] at > > > com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision > > (ProvisionListenerStackCallback.java:133) > > [INFO] at > > com.google.inject.internal.ProvisionListenerStackCallback.provision > > (ProvisionListenerStackCallback.java:68) > > [INFO] at > > com.google.inject.internal.ProviderInternalFactory.circularGet > > (ProviderInternalFactory.java:63) > > [INFO] at > > com.google.inject.internal.InternalFactoryToInitializableAdapter.get > > (InternalFactoryToInitializableAdapter.java:45) > > [INFO] at com.google.inject.internal.InjectorImpl$2$1.call > > (InjectorImpl.java:1016) > > [INFO] at com.google.inject.internal.InjectorImpl.callInContext > > (InjectorImpl.java:1092) > > [INFO] at com.google.inject.internal.InjectorImpl$2.get > > (InjectorImpl.java:1012) > > [INFO] at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162) > > [INFO] at org.eclipse.sisu.inject.LazyBeanEntry.getValue > > (LazyBeanEntry.java:81) > > [INFO] at org.eclipse.sisu.plexus.LazyPlexusBean.getValue > > (LazyPlexusBean.java:51) > > [INFO] at org.codehaus.plexus.DefaultPlexusContainer.lookup > > (DefaultPlexusContainer.java:263) > > [INFO] at org.codehaus.plexus.DefaultPlexusContainer.lookup > > (DefaultPlexusContainer.java:255) > > [INFO] at > > > org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo > > (DefaultMavenPluginManager.java:519) > > [INFO] at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > > (DefaultBuildPluginManager.java:124) > > [INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute > > (MojoExecutor.java:208) > > [INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute > > (MojoExecutor.java:154) > > [INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute > > (MojoExecutor.java:146) > > [INFO] at > > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > > (LifecycleModuleBuilder.java:117) > > [INFO] at > > org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject > > (LifecycleModuleBuilder.java:81) > > [INFO] at > > > org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build > > (SingleThreadedBuilder.java:56) > > [INFO] at > org.apache.maven.lifecycle.internal.LifecycleStarter.execute > > (LifecycleStarter.java:128) > > [INFO] at org.apache.maven.DefaultMaven.doExecute > > (DefaultMaven.java:305) > > [INFO] at org.apache.maven.DefaultMaven.doExecute > > (DefaultMaven.java:192) > > [INFO] at org.apache.maven.DefaultMaven.execute > (DefaultMaven.java:105) > > [INFO] at org.apache.maven.cli.MavenCli.execute (MavenCli.java:956) > > [INFO] at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:290) > > [INFO] at org.apache.maven.cli.MavenCli.main (MavenCli.java:194) > > [INFO] at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native > Method) > > [INFO] at sun.reflect.NativeMethodAccessorImpl.invoke > > (NativeMethodAccessorImpl.java:57) > > [INFO] at sun.reflect.DelegatingMethodAccessorImpl.invoke > > (DelegatingMethodAccessorImpl.java:43) > > [INFO] at java.lang.reflect.Method.invoke (Method.java:606) > > [INFO] at > > org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced > > (Launcher.java:289) > > [INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.launch > > (Launcher.java:229) > > [INFO] at > > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode > > (Launcher.java:415) > > [INFO] at org.codehaus.plexus.classworlds.launcher.Launcher.main > > (Launcher.java:356) > > [INFO] Caused by: java.lang.UnsupportedClassVersionError: > > org/apache/maven/plugins/javadoc/JavadocJar : Unsupported major.minor > > version 52.0 > > [INFO] at java.lang.ClassLoader.defineClass1 (Native Method) > > [INFO] at java.lang.ClassLoader.defineClass (ClassLoader.java:800) > > [INFO] at java.security.SecureClassLoader.defineClass > > (SecureClassLoader.java:142) > > [INFO] at java.net.URLClassLoader.defineClass > (URLClassLoader.java:449) > > [INFO] at java.net.URLClassLoader.access$100 (URLClassLoader.java:71) > > [INFO] at java.net.URLClassLoader$1.run (URLClassLoader.java:361) > > [INFO] at java.net.URLClassLoader$1.run (URLClassLoader.java:355) > > [INFO] at java.security.AccessController.doPrivileged (Native Method) > > [INFO] at java.net.URLClassLoader.findClass (URLClassLoader.java:354) > > [INFO] at > > org.codehaus.plexus.classworlds.realm.ClassRealm.loadClassFromSelf > > (ClassRealm.java:401) > > [INFO] at > > org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass > > (SelfFirstStrategy.java:42) > > [INFO] at > > org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass > > (ClassRealm.java:271) > > [INFO] at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass > > (ClassRealm.java:247) > > [INFO] at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass > > (ClassRealm.java:239) > > [INFO] at org.eclipse.sisu.space.URLClassSpace.loadClass > > (URLClassSpace.java:139) > > [INFO] at org.eclipse.sisu.space.NamedClass.load > (NamedClass.java:46) > > [INFO] at org.eclipse.sisu.space.AbstractDeferredClass.get > > (AbstractDeferredClass.java:48) > > [INFO] at > com.google.inject.internal.ProviderInternalFactory.provision > > (ProviderInternalFactory.java:81) > > [INFO] at > > > com.google.inject.internal.InternalFactoryToInitializableAdapter.provision > > (InternalFactoryToInitializableAdapter.java:53) > > [INFO] at com.google.inject.internal.ProviderInternalFactory$1.call > > (ProviderInternalFactory.java:65) > > [INFO] at > > > com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision > > (ProvisionListenerStackCallback.java:115) > > [INFO] at > > > com.google.inject.internal.ProvisionListenerStackCallback$Provision.provision > > (ProvisionListenerStackCallback.java:133) > > [INFO] at > > com.google.inject.internal.ProvisionListenerStackCallback.provision > > (ProvisionListenerStackCallback.java:68) > > [INFO] at > > com.google.inject.internal.ProviderInternalFactory.circularGet > > (ProviderInternalFactory.java:63) > > [INFO] at > > com.google.inject.internal.InternalFactoryToInitializableAdapter.get > > (InternalFactoryToInitializableAdapter.java:45) > > [INFO] at com.google.inject.internal.InjectorImpl$2$1.call > > (InjectorImpl.java:1016) > > [INFO] at com.google.inject.internal.InjectorImpl.callInContext > > (InjectorImpl.java:1092) > > [INFO] at com.google.inject.internal.InjectorImpl$2.get > > (InjectorImpl.java:1012) > > [INFO] at org.eclipse.sisu.inject.Guice4$1.get (Guice4.java:162) > > [INFO] at org.eclipse.sisu.inject.LazyBeanEntry.getValue > > (LazyBeanEntry.java:81) > > [INFO] at org.eclipse.sisu.plexus.LazyPlexusBean.getValue > > (LazyPlexusBean.java:51) > > [INFO] at org.codehaus.plexus.DefaultPlexusContainer.lookup > > (DefaultPlexusContainer.java:263) > > [INFO] at org.codehaus.plexus.DefaultPlexusContainer.lookup > > (DefaultPlexusContainer.java:255) > > [INFO] at > > > org.apache.maven.plugin.internal.DefaultMavenPluginManager.getConfiguredMojo > > (DefaultMavenPluginManager.java:519) > > [INFO] at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo > > (DefaultBuildPluginManager.java:124) > > [INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute > > (MojoExecutor.java:208) > > [INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute > > (MojoExecutor.java:154) > > [INFO] at org.apache.maven.lifecycle.internal.MojoExecutor.execute > > (MojoExecutor.java:146) > > > > 2) Per #1, is there a relatively easy way for us to tell maven when > running > > mvn commands exact versions of the maven plugins to utilize in the > > command-line or must we set those within the pluginManagement section of > > the pom.xml file as shown below? > > > > <pluginManagement> > > <plugins> > > <plugin> > > <artifactId>maven-javadoc-plugin</artifactId> > > <version>3.2.0</version> > > </plugin> > > </plugins> > > </pluginManagement> > > > > > > Thanks for any recommendations or help around this matter. On the > up-side, > > this is helping me to light a fire under my company to upgrade the build > > process for the few projects that still build with and run on machines > > running JDK 1.7, but it does create some near-term pain for us since > these > > releases with JDK 1.8 class files started appearing in May. > > > > Thanks, > > Rick > > > > < > > > https://about.me/rickhanton?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=edit_panel&utm_content=thumb > > > > > Rick Hanton > > about.me/rickhanton > > < > > > https://about.me/rickhanton?promo=email_sig&utm_source=product&utm_medium=email_sig&utm_campaign=edit_panel&utm_content=thumb > > > > > E-mail: hant...@gmail.com > > Twitter: rack88 <http://www.twitter.com/rack88> > > Cell: 651-747-5864 > > >