Bug 1112978
| Summary: | Maven plugin fails compile If ClassA(in a.jar) which extends ClassB(in b.jar) is used in bpmn2(in c.jar), and dependency for b.jar is not written in c.jar's pom.xml | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Retired] JBoss BPMS Platform 6 | Reporter: | Hisao Furuichi <hfuruich> | ||||
| Component: | Build and Assembly | Assignee: | Mario Fusco <mfusco> | ||||
| Status: | CLOSED EOL | QA Contact: | Ivo Bek <ibek> | ||||
| Severity: | high | Docs Contact: | |||||
| Priority: | high | ||||||
| Version: | 6.0.1 | CC: | kverlaen, mbaluch | ||||
| Target Milestone: | DR2 | ||||||
| Target Release: | 6.1.0 | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2020-03-27 20:05:12 UTC | Type: | Bug | ||||
| Regression: | --- | Mount Type: | --- | ||||
| Documentation: | --- | CRM: | |||||
| Verified Versions: | Category: | --- | |||||
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||
| Cloudforms Team: | --- | Target Upstream Version: | |||||
| Embargoed: | |||||||
| Attachments: |
|
||||||
I tested the provided reproducer both against 6.0.x and 6.1.x branches and it works for me. Very likely this problem has been resolved by this fix https://bugzilla.redhat.com/show_bug.cgi?id=1108070 Verified in BPMS 6.0.3.DR2 Project-a is built sucessfully when the kie-maven-plugin is updated to 6.0.3 version. Well, I verified it in BPMS 6.0.3.CR1 but according to this BZ I will verify it especially in BPMS 6.1.0.DR2. Verified in BPMS 6.1.0.DR3 |
Created attachment 911962 [details] reproducer Description of problem: In the following situation, maven plugin fails compile: - There are 2 projects project-a(kie-jar) and project-b(jar) - project-b depends on spring component - project-b has a wrapper class, sample.project_b.SpringUtil, which extends a Spring components(org.springframework.context.ApplicationContextAware). - project-a depends on project-b - simple-process.bpmn2 in project-a uses sample.project_b.SpringUtil Error stack trace: === org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.kie:kie-maven-plugin:6.0.2-redhat-6:build (default-build) on project project-a: Execution default-build of goal org.kie:kie-maven-plugin:6.0.2-redhat-6:build failed: A required class was missing while executing org.kie:kie-maven-plugin:6.0.2-redhat-6:build: org/springframework/context/ApplicationContextAware at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:224) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84) at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59) at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183) at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:317) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:152) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:555) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) at org.apache.maven.cli.MavenCli.main(MavenCli.java:158) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:606) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Caused by: org.apache.maven.plugin.PluginExecutionException: Execution default-build of goal org.kie:kie-maven-plugin:6.0.2-redhat-6:build failed: A required class was missing while executing org.kie:kie-maven-plugin:6.0.2-redhat-6:build: org/springframework/context/ApplicationContextAware at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:132) at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208) ... 19 more Caused by: org.apache.maven.plugin.PluginContainerException: A required class was missing while executing org.kie:kie-maven-plugin:6.0.2-redhat-6:build: org/springframework/context/ApplicationContextAware at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:130) ... 20 more Caused by: java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContextAware at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at org.drools.core.common.ProjectClassLoader.internalLoadClass(ProjectClassLoader.java:142) at org.drools.core.common.ProjectClassLoader.loadClass(ProjectClassLoader.java:125) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.drools.core.base.ClassTypeResolver.resolveType(ClassTypeResolver.java:155) at org.drools.compiler.rule.builder.dialect.mvel.MVELDialect.addImport(MVELDialect.java:394) at org.drools.compiler.compiler.DialectCompiletimeRegistry.addImport(DialectCompiletimeRegistry.java:87) at org.drools.compiler.compiler.PackageRegistry.addImport(PackageRegistry.java:93) at org.drools.compiler.compiler.PackageBuilder.mergePackage(PackageBuilder.java:1567) at org.drools.compiler.compiler.PackageBuilder.addPackage(PackageBuilder.java:962) at org.drools.compiler.compiler.PackageBuilder.addPackageFromDrl(PackageBuilder.java:455) at org.jbpm.compiler.ProcessBuilderImpl.buildProcess(ProcessBuilderImpl.java:139) at org.jbpm.compiler.ProcessBuilderImpl.addProcessFromXml(ProcessBuilderImpl.java:281) at org.drools.compiler.compiler.PackageBuilder.addProcessFromXml(PackageBuilder.java:699) at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.buildResources(CompositeKnowledgeBuilderImpl.java:149) at org.drools.compiler.compiler.CompositeKnowledgeBuilderImpl.build(CompositeKnowledgeBuilderImpl.java:86) at org.drools.compiler.kie.builder.impl.AbstractKieModule.buildKnowledgePackages(AbstractKieModule.java:219) at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:39) at org.drools.compiler.kie.builder.impl.AbstractKieProject.verify(AbstractKieProject.java:33) at org.kie.maven.plugin.BuildMojo.execute(BuildMojo.java:92) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106) ... 20 more Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContextAware at java.net.URLClassLoader$1.run(URLClassLoader.java:366) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at java.net.FactoryURLClassLoader.loadClass(URLClassLoader.java:789) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) ... 52 more === To "mvn clean compile" project-a, user needs to set dependency for spring component for project-a's pom.xml. Steps to Reproduce: 1. download and untar attached file 2. do "mvn clean install" in project-b 3. do "mvn clean compile" in project-a Actual results: fails compile Expected results: mvn plugin can compile it