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