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
> >
>

Reply via email to