powered by Jive Software

NoClassDefFoundError on JspC when trying to build plugin

When trying to build the latest version of the openfire-userImportExport-plugin as an example how to mavenize my own-made openfire plugins, i get an java.lang.NoClassDefFoundError: org/apache/jasper/JspC.

I am building on a Windows 7 machine, using java 1.8.0_211, Apache Maven 3.6.0.

What am i doing wrong?

Derived question: How does the reference environment looks like for building OF?

The redacted output:

[INFO] --- jetty-jspc-maven-plugin:9.4.12.v20180830:jspc (jspc) @ userImportExport ---
[WARNING] Error injecting: org.eclipse.jetty.jspc.plugin.JspcMojo
java.lang.NoClassDefFoundError: org/apache/jasper/JspC
    at java.lang.ClassLoader.defineClass1 (Native Method)
...
    at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
    at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
....
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  2.970 s
[INFO] Finished at: 2019-08-09T10:02:27+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.eclipse.jetty:jetty-jspc-maven-plugin:9.4.12.v20180830:jspc (jspc) on project userImportExport: Execution jspc of goal org.ec
lipse.jetty:jetty-jspc-maven-plugin:9.4.12.v20180830:jspc failed: A required class was missing while executing org.eclipse.jetty:jetty-jspc-maven-plugin:9.4.12.
v20180830:jspc: org/apache/jasper/JspC
[ERROR] -----------------------------------------------------
[ERROR] realm =    plugin>org.eclipse.jetty:jetty-jspc-maven-plugin:9.4.12.v20180830
[ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy
[ERROR] urls[0] = file:/d:/m2/repository/org/eclipse/jetty/jetty-jspc-maven-plugin/9.4.12.v20180830/jetty-jspc-maven-plugin-9.4.12.v20180830.jar
[ERROR] urls[1] = file:/d:/m2/repository/org/eclipse/jetty/jetty-util/9.4.12.v20180830/jetty-util-9.4.12.v20180830.jar
[ERROR] urls[2] = file:/d:/m2/repository/javax/enterprise/cdi-api/1.0/cdi-api-1.0.jar
[ERROR] urls[3] = file:/d:/m2/repository/org/eclipse/sisu/org.eclipse.sisu.inject/0.3.3/org.eclipse.sisu.inject-0.3.3.jar
[ERROR] urls[4] = file:/d:/m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar
[ERROR] urls[5] = file:/d:/m2/repository/org/codehaus/plexus/plexus-utils/3.0.24/plexus-utils-3.0.24.jar
[ERROR] urls[6] = file:/d:/m2/repository/org/apache/commons/commons-lang3/3.5/commons-lang3-3.5.jar
[ERROR] urls[7] = file:/d:/m2/repository/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.5.2/maven-plugin-tools-api-3.5.2.jar
[ERROR] urls[8] = file:/d:/m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar
[ERROR] urls[9] = file:/d:/m2/repository/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar
[ERROR] urls[10] = file:/d:/m2/repository/org/eclipse/jetty/apache-jsp/9.4.12.v20180830/apache-jsp-9.4.12.v20180830.jar
[ERROR] urls[11] = file:/d:/m2/repository/org/eclipse/jetty/toolchain/jetty-schemas/3.1/jetty-schemas-3.1.jar
[ERROR] urls[12] = file:/d:/m2/repository/javax/servlet/javax.servlet-api/3.1.0/javax.servlet-api-3.1.0.jar
[ERROR] urls[13] = file:/d:/m2/repository/org/mortbay/jasper/apache-jsp/8.5.24.2/apache-jsp-8.5.24.2.jar
[ERROR] urls[14] = file:/d:/m2/repository/org/mortbay/jasper/apache-el/8.5.24.2/apache-el-8.5.24.2.jar
[ERROR] urls[15] = file:/d:/m2/repository/org/eclipse/jdt/ecj/3.12.3/ecj-3.12.3.jar
[ERROR] urls[16] = file:/d:/m2/repository/org/eclipse/jetty/jetty-annotations/9.4.12.v20180830/jetty-annotations-9.4.12.v20180830.jar
[ERROR] urls[17] = file:/d:/m2/repository/org/eclipse/jetty/jetty-plus/9.4.12.v20180830/jetty-plus-9.4.12.v20180830.jar
[ERROR] urls[18] = file:/d:/m2/repository/org/eclipse/jetty/jetty-jndi/9.4.12.v20180830/jetty-jndi-9.4.12.v20180830.jar
[ERROR] urls[19] = file:/d:/m2/repository/org/eclipse/jetty/jetty-webapp/9.4.12.v20180830/jetty-webapp-9.4.12.v20180830.jar
[ERROR] urls[20] = file:/d:/m2/repository/org/eclipse/jetty/jetty-xml/9.4.12.v20180830/jetty-xml-9.4.12.v20180830.jar
[ERROR] urls[21] = file:/d:/m2/repository/org/eclipse/jetty/jetty-servlet/9.4.12.v20180830/jetty-servlet-9.4.12.v20180830.jar
[ERROR] urls[22] = file:/d:/m2/repository/org/eclipse/jetty/jetty-security/9.4.12.v20180830/jetty-security-9.4.12.v20180830.jar
[ERROR] urls[23] = file:/d:/m2/repository/org/eclipse/jetty/jetty-server/9.4.12.v20180830/jetty-server-9.4.12.v20180830.jar
[ERROR] urls[24] = file:/d:/m2/repository/org/eclipse/jetty/jetty-http/9.4.12.v20180830/jetty-http-9.4.12.v20180830.jar
[ERROR] urls[25] = file:/d:/m2/repository/org/eclipse/jetty/jetty-io/9.4.12.v20180830/jetty-io-9.4.12.v20180830.jar
[ERROR] urls[26] = file:/d:/m2/repository/javax/annotation/javax.annotation-api/1.2/javax.annotation-api-1.2.jar
[ERROR] urls[27] = file:/d:/m2/repository/org/ow2/asm/asm/6.2/asm-6.2.jar
[ERROR] urls[28] = file:/d:/m2/repository/org/ow2/asm/asm-commons/6.2/asm-commons-6.2.jar
[ERROR] urls[29] = file:/d:/m2/repository/org/ow2/asm/asm-tree/6.2/asm-tree-6.2.jar
[ERROR] urls[30] = file:/d:/m2/repository/org/ow2/asm/asm-analysis/6.2/asm-analysis-6.2.jar
[ERROR] urls[31] = file:/d:/m2/repository/org/apache/ant/ant/1.8.4/ant-1.8.4.jar
[ERROR] urls[32] = file:/d:/m2/repository/org/apache/ant/ant-launcher/1.8.4/ant-launcher-1.8.4.jar
[ERROR] Number of foreign imports: 1
[ERROR] import: Entry[import  from realm ClassRealm[maven.api, parent: null]]
[ERROR]
[ERROR] -----------------------------------------------------
[ERROR] : org.apache.jasper.JspC
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginContainerException

It turns out the the openfire-search-plugin is working. It explicitly uses a different version of the jetty-jspc-maven-plugin

                <!-- Force the Openfire 4.2.x compatible version of JSP -->
                <version>9.2.14.v20151106</version>
                <dependencies>
                    <dependency>
                        <groupId>org.igniterealtime.openfire</groupId>
                        <artifactId>xmppserver</artifactId>
                        <version>${openfire.version}</version>
                    </dependency>
                </dependencies>

When applying the same modification to the openfire-userImportExport-plugin, it works also for this plugin.