mulesoft-labs / raml-for-jax-rs

This project is all about two way transformation of JAX-RS-annotated Java code to RAML API description and back.
Other
296 stars 181 forks source link

A required class was missing while executing org.raml.plugins:jaxrs-raml-maven-plugin #216

Open yuranos opened 7 years ago

yuranos commented 7 years ago

I am trying to generate RAML for our Jersey resources(on top of Mule ESB) and for some reason I keep getting: [INFO] BUILD FAILURE [INFO] ------------------------------------------------------------------------ [INFO] Total time: 20.522 s [INFO] Finished at: 2016-12-26T19:25:49+02:00 [INFO] Final Memory: 48M/514M [INFO] ------------------------------------------------------------------------ [ERROR] Failed to execute goal org.raml.plugins:jaxrs-raml-maven-plugin:1.3.4:generate-raml (default) on project bapi-api: Execution default of goal org.raml.plugins:jaxrs-raml-maven-plugin:1.3.4:generate-raml failed: A required class was missing while executing org.raml.plugins:jaxrs-raml-maven-plugin:1.3.4:generate-raml: com/mypackage/api/basket/Basket [ERROR] ----------------------------------------------------- [ERROR] realm = plugin>org.raml.plugins:jaxrs-raml-maven-plugin:1.3.4 [ERROR] strategy = org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy [ERROR] urls[0] = file:/C:/Users/ino/.m2/repository/org/raml/plugins/jaxrs-raml-maven-plugin/1.3.4/jaxrs-raml-maven-plugin-1.3.4.jar [ERROR] urls[1] = file:/C:/Users/ino/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-tools-api/3.2/maven-plugin-tools-api-3.2.jar [ERROR] urls[2] = file:/C:/Users/ino/.m2/repository/backport-util-concurrent/backport-util-concurrent/3.1/backport-util-concurrent-3.1.jar [ERROR] urls[3] = file:/C:/Users/ino/.m2/repository/org/codehaus/plexus/plexus-interpolation/1.11/plexus-interpolation-1.11.jar [ERROR] urls[4] = file:/C:/Users/ino/.m2/repository/org/codehaus/plexus/plexus-utils/3.0/plexus-utils-3.0.jar [ERROR] urls[5] = file:/C:/Users/ino/.m2/repository/junit/junit/3.8.1/junit-3.8.1.jar [ERROR] urls[6] = file:/C:/Users/ino/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-tools-annotations/3.2/maven-plugin-tools-annotations-3.2.jar [ERROR] urls[7] = file:/C:/Users/ino/.m2/repository/org/apache/maven/plugin-tools/maven-plugin-annotations/3.2/maven-plugin-annotations-3.2.jar [ERROR] urls[8] = file:/C:/Users/ino/.m2/repository/org/codehaus/plexus/plexus-component-annotations/1.5.5/plexus-component-annotations-1.5.5.jar [ERROR] urls[9] = file:/C:/Users/ino/.m2/repository/asm/asm/3.3.1/asm-3.3.1.jar [ERROR] urls[10] = file:/C:/Users/ino/.m2/repository/asm/asm-commons/3.3.1/asm-commons-3.3.1.jar [ERROR] urls[11] = file:/C:/Users/ino/.m2/repository/asm/asm-tree/3.3.1/asm-tree-3.3.1.jar [ERROR] urls[12] = file:/C:/Users/ino/.m2/repository/org/codehaus/plexus/plexus-archiver/2.1.1/plexus-archiver-2.1.1.jar [ERROR] urls[13] = file:/C:/Users/ino/.m2/repository/org/codehaus/plexus/plexus-io/2.0.3/plexus-io-2.0.3.jar [ERROR] urls[14] = file:/C:/Users/ino/.m2/repository/com/thoughtworks/qdox/qdox/1.12.1/qdox-1.12.1.jar [ERROR] urls[15] = file:/C:/Users/ino/.m2/repository/fr/inria/gforge/spoon/spoon-core/4.0.0/spoon-core-4.0.0.jar [ERROR] urls[16] = file:/C:/Users/ino/.m2/repository/org/eclipse/jdt/core/compiler/ecj/4.4/ecj-4.4.jar [ERROR] urls[17] = file:/C:/Users/ino/.m2/repository/com/martiansoftware/jsap/2.1/jsap-2.1.jar [ERROR] urls[18] = file:/C:/Users/ino/.m2/repository/log4j/log4j/1.2.17/log4j-1.2.17.jar [ERROR] urls[19] = file:/C:/Users/ino/.m2/repository/commons-io/commons-io/1.3.2/commons-io-1.3.2.jar [ERROR] urls[20] = file:/C:/Users/ino/.m2/repository/org/raml/com.mulesoft.jaxrs.raml.generator/1.3.4/com.mulesoft.jaxrs.raml.generator-1.3.4.jar [ERROR] urls[21] = file:/C:/Users/ino/.m2/repository/xerces/xercesImpl/2.11.0/xercesImpl-2.11.0.jar [ERROR] urls[22] = file:/C:/Users/ino/.m2/repository/xml-apis/xml-apis/1.4.01/xml-apis-1.4.01.jar [ERROR] urls[23] = file:/C:/Users/ino/.m2/repository/org/yaml/snakeyaml/1.13/snakeyaml-1.13.jar [ERROR] urls[24] = file:/C:/Users/ino/.m2/repository/org/glassfish/javax.json/1.0.4/javax.json-1.0.4.jar [ERROR] urls[25] = file:/C:/Users/ino/.m2/repository/org/bluestemsoftware/open/maven/tparty/jettison/1.1/jettison-1.1.jar [ERROR] urls[26] = file:/C:/Users/ino/.m2/repository/stax/stax-api/1.0.1/stax-api-1.0.1.jar [ERROR] urls[27] = file:/C:/Users/ino/.m2/repository/commons-lang/commons-lang/2.6/commons-lang-2.6.jar [ERROR] urls[28] = file:/C:/Users/ino/.m2/repository/commons-validator/commons-validator/1.3.1/commons-validator-1.3.1.jar [ERROR] urls[29] = file:/C:/Users/ino/.m2/repository/commons-beanutils/commons-beanutils/1.7.0/commons-beanutils-1.7.0.jar [ERROR] urls[30] = file:/C:/Users/ino/.m2/repository/commons-digester/commons-digester/1.6/commons-digester-1.6.jar [ERROR] urls[31] = file:/C:/Users/ino/.m2/repository/commons-collections/commons-collections/2.1/commons-collections-2.1.jar [ERROR] urls[32] = file:/C:/Users/ino/.m2/repository/commons-logging/commons-logging/1.0.4/commons-logging-1.0.4.jar [ERROR] urls[33] = file:/C:/Users/ino/.m2/repository/org/slf4j/slf4j-log4j12/1.7.5/slf4j-log4j12-1.7.5.jar [ERROR] urls[34] = file:/C:/Users/ino/.m2/repository/org/kitchen-eel/json-schema-validator/1.2.2/json-schema-validator-1.2.2.jar [ERROR] urls[35] = file:/C:/Users/ino/.m2/repository/org/mozilla/rhino/1.7R4/rhino-1.7R4.jar [ERROR] urls[36] = file:/C:/Users/ino/.m2/repository/javax/mail/mailapi/1.4.3/mailapi-1.4.3.jar [ERROR] urls[37] = file:/C:/Users/ino/.m2/repository/joda-time/joda-time/2.1/joda-time-2.1.jar [ERROR] urls[38] = file:/C:/Users/ino/.m2/repository/com/google/guava/guava/13.0/guava-13.0.jar [ERROR] urls[39] = file:/C:/Users/ino/.m2/repository/com/fasterxml/jackson/core/jackson-databind/2.1.1/jackson-databind-2.1.1.jar [ERROR] urls[40] = file:/C:/Users/ino/.m2/repository/com/fasterxml/jackson/core/jackson-annotations/2.1.1/jackson-annotations-2.1.1.jar [ERROR] urls[41] = file:/C:/Users/ino/.m2/repository/com/fasterxml/jackson/core/jackson-core/2.1.1/jackson-core-2.1.1.jar [ERROR] urls[42] = file:/C:/Users/ino/.m2/repository/javax/ws/rs/jsr311-api/1.1.1/jsr311-api-1.1.1.jar [ERROR] urls[43] = file:/C:/Users/ino/.m2/repository/com/sun/xml/bind/jaxb-xjc/2.1.6/jaxb-xjc-2.1.6.jar [ERROR] urls[44] = file:/C:/Users/ino/.m2/repository/javax/validation/validation-api/1.0.0.GA/validation-api-1.0.0.GA.jar [ERROR] Number of foreign imports: 1 [ERROR] import: Entry[import from realm ClassRealm[maven.api, parent: null]] [ERROR] [ERROR] -----------------------------------------------------: com.mypackage.api.basket.Basket [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

This is very strange because the module with Basket class is not used in the current module intentionally. This is an isolation we need. We excluded the module with Basket from the current one on purpose. It is not needed and was never used before. That module is not on the class path and I checked it with dependency:tree. My maven plugin looks as follows:

            <plugin>
                <groupId>org.raml.plugins</groupId>
                <artifactId>jaxrs-raml-maven-plugin</artifactId>
                <version>1.3.4</version>
                <configuration>
                    <sourceDirectory>${basedir}/src/main/java</sourceDirectory>
                    <outputFile>${project.build.directory}/generated-sources/jaxrs-raml/myraml.raml</outputFile>
                    <removeOldOutput>true</removeOldOutput>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate-raml</goal>
                        </goals>
                        <phase>process-classes</phase>
                    </execution>
                </executions>
            </plugin>

I don't understand how jaxrs-raml-maven-plugin can even know about Basket? If I add Basket module to the classpath everything is generated smoothly. I have searched for Basket usage inside generated files under /target and again haven't found anything.

Any suggestions?

jstoiko commented 7 years ago

@yuranos87: did you ever get around to find the cause of your issue? maybe you'll want to give this new version a try...

rriedel commented 7 years ago

Any news on this?

I'm getting the same error, with the difference that the classes ARE in the modules dependencies. Btw, I'm using version 2.0.0.

jpbelang commented 6 years ago

What error are you getting in 2.x ?