Maven plugins using Javadoc MOJO descriptors FTBFS

Bug #2089933 reported by Pushkar Kulkarni
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
antlr-maven-plugin (Ubuntu)
New
Undecided
Unassigned
gettext-maven-plugin (Ubuntu)
New
Undecided
Unassigned
maven-plugin-tools (Ubuntu)
New
Undecided
Unassigned

Bug Description

The build in -proposed failed [1] on plucky because maven cannot find the Javadoc-based Mojo descriptions. The same package builds successfully in Debian unstable (which has the same versions of the build-deps).

The reason for the failure is that the Javadoc Mojo Descriptor extractor is not loaded in the failing environment. I have done some investigation but have yet not found answers to why the Javadoc extractor is missing. There is no evidence for this in the plugin configuration.

The gettext-maven-plugin is affected by the same problem [2].

[1] https://launchpadlibrarian.net/759073948/buildlog_ubuntu-plucky-amd64.antlr-maven-plugin_2.2-7_BUILDING.txt.gz

[2] https://launchpadlibrarian.net/759073901/buildlog_ubuntu-plucky-amd64.gettext-maven-plugin_1.2.9-5_BUILDING.txt.gz

Related branches

tags: added: update-excuse
description: updated
Revision history for this message
Pushkar Kulkarni (pushkarnk) wrote :

Here is a synopsis of the failure investigation.

Packages antlr-maven-plugin and gettext-maven-plugins are maven plugins that use the Javadoc-based Mojo descriptor. That Javadoc MOJO descriptor, along with Ant-based and Beanshell-based MOJO descriptors, is deprecated. Support for these descriptors will be removed in Maven 4.

MOJO descriptor extractor classes are included in package maven-plugin-tools. The antlr-maven-plugin and gettext-maven-plugins packages FTBFS because b-d maven-plugin-tools 3.10.2-1 (which must support Javadoc Mojos) fails to discover the JavaJavadocMojoDescriptorExtractor class present in maven-plugin-tools-java-debian.jar.

The extractor classes are discovered and instantiated and into the maven workflow through dependency injection, by the sisu-maven-plugin [1]. For the latter to discover these classes, they need to be indexed in a file named "META-INF/sisu/javax.inject.Named" [2] packaged in the maven-plugin-tools-java-debian.jar. However, this file isn't found in that JAR file shipped with libmaven-plugin-tools-java, the binary package for maven-plugin-tools.

The current binaries of libmaven-plugin-tools-java on Debian unstable do include the index file. I don't have an explanation for that. But when I tried to build the maven-plugin-tools source package in Debian sid, I could not find the index file.

There are no changes between maven-plugin-tools 3.7.1-1 and 3.10.2-1 which would suggest why the index file was packaged in 3.7.1-1, but is not included in 3.10.2-1. I cannot explain how it got included in 3.7.1-1! I know why it doesn't exist in 3.10.2-1.

Similar index files are found in the maven-plugin-tools-ant-debian.jar and maven-plugin-tools-beanshell-debian.jar which also ship with libmaven-plugin-tools-java.

A short-term solution, for now, is to make sure the index file gets added to the maven-plugin-tools-java-debian.jar on Ubuntu. The patch would be irrelevant once Maven 4 is released.

[1] https://launchpad.net/ubuntu/+source/sisu-mojos
[2] https://maven.apache.org/maven-jsr330.html

summary: - antlr-maven-plugin 2.2-7 FTBFS
+ Maven plugins using Javadoc MOJO descriptors FTBFS
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.