[ https://issues.apache.org/jira/browse/MEAR-216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17195895#comment-17195895 ]
Marat Abrarov edited comment on MEAR-216 at 9/15/20, 6:13 AM: -------------------------------------------------------------- [~wrungel], what about custom artifact type mappings - [artifactTypeMappings|https://maven.apache.org/plugins/maven-ear-plugin/generate-application-xml-mojo.html#artifactTypeMappings] configuration parameter of ear:generate-application-xml and ear:ear goals? I tried this configuration (upgraded till the latest GA version of Maven EAR Plugin and added artifactTypeMappings option): {code:xml} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.0.2</version> <configuration> <version>7</version> <defaultLibBundleDir>lib</defaultLibBundleDir> <useBaseVersion>true</useBaseVersion> <artifactTypeMappings> <artifactTypeMapping type="test-jar" mapping="jar"/> </artifactTypeMappings> </configuration> </plugin> {code} for [^test-jar-in-ear-2.zip] maven project you provided and it works: {noformat} $ mvn clean package ... [INFO] ----------------------< frol:test-jar-in-ear-ear >---------------------- [INFO] Building test-jar-in-ear-ear 1.0-SNAPSHOT [3/3] [INFO] --------------------------------[ ear ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ test-jar-in-ear-ear --- [INFO] [INFO] --- maven-ear-plugin:3.0.2:generate-application-xml (default-generate-application-xml) @ test-jar-in-ear-ear --- [WARNING] Using useBaseVersion not yet fixed. [INFO] Generating application.xml [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ test-jar-in-ear-ear --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory D:\Users\Marat\Documents\work\java\test-jar-in-ear\ear\src\main\resources [INFO] [INFO] --- maven-ear-plugin:3.0.2:ear (default-ear) @ test-jar-in-ear-ear --- [WARNING] Using useBaseVersion not yet fixed. [INFO] Copying artifact [jar:frol:test-jar-in-ear-lib:1.0-SNAPSHOT] to [lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT.jar] [INFO] Copying artifact [jar:frol:test-jar-in-ear-lib:tests:1.0-SNAPSHOT] to [lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT-tests.jar] [INFO] Copy ear sources to D:\Users\Marat\Documents\work\java\test-jar-in-ear\ear\target\test-jar-in-ear-ear-1.0-SNAPSHOT [INFO] Building jar: D:\Users\Marat\Documents\work\java\test-jar-in-ear\ear\target\test-jar-in-ear-ear-1.0-SNAPSHOT.ear [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for test-jar-in-ear-parent 1.0-SNAPSHOT: [INFO] [INFO] test-jar-in-ear-parent ............................. SUCCESS [ 0.194 s] [INFO] test-jar-in-ear-lib ................................ SUCCESS [ 2.390 s] [INFO] test-jar-in-ear-ear ................................ SUCCESS [ 0.892 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.655 s (Wall Clock) [INFO] Finished at: 2020-09-15T08:56:36+03:00 [INFO] ------------------------------------------------------------------------ $ cat ear/target/application.xml <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" version="7"> <display-name>test-jar-in-ear-ear</display-name> <library-directory>lib</library-directory> </application> $ unzip -l ear/target/test-jar-in-ear-ear-1.0-SNAPSHOT.ear Archive: ear/target/test-jar-in-ear-ear-1.0-SNAPSHOT.ear Length Date Time Name --------- ---------- ----- ---- 95 09-15-2020 09:04 META-INF/MANIFEST.MF 0 09-15-2020 09:04 META-INF/ 0 09-15-2020 09:04 lib/ 0 09-15-2020 09:04 META-INF/maven/ 0 09-15-2020 09:04 META-INF/maven/frol/ 0 09-15-2020 09:04 META-INF/maven/frol/test-jar-in-ear-ear/ 2076 09-15-2020 09:04 lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT-tests.jar 381 09-15-2020 09:04 META-INF/application.xml 1684 09-15-2020 08:56 META-INF/maven/frol/test-jar-in-ear-ear/pom.xml 96 09-15-2020 09:04 META-INF/maven/frol/test-jar-in-ear-ear/pom.properties 2082 09-15-2020 09:04 lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT.jar --------- ------- 6414 11 files {noformat} Refer to [{{org.apache.maven.plugins.ear.util.ArtifactTypeMappingService}}|https://github.com/apache/maven-ear-plugin/blob/maven-ear-plugin-3.0.2/src/main/java/org/apache/maven/plugins/ear/util/ArtifactTypeMappingService.java] class and to [{{org.apache.maven.plugins.ear.util.ArtifactRepository#getArtifacts}}|https://github.com/apache/maven-ear-plugin/blob/maven-ear-plugin-3.0.2/src/main/java/org/apache/maven/plugins/ear/util/ArtifactRepository.java#L138] method which is called by [{{org.apache.maven.plugins.ear.JarModule#resolveArtifact}}|https://github.com/apache/maven-ear-plugin/blob/maven-ear-plugin-3.0.2/src/main/java/org/apache/maven/plugins/ear/JarModule.java#L91] method when generating application.xml and packaging EAR file. was (Author: abrarovm): [~wrungel], what about custom artifact type mappings - [artifactTypeMappings|https://maven.apache.org/plugins/maven-ear-plugin/generate-application-xml-mojo.html#artifactTypeMappings] configuration parameter of ear:generate-application-xml and ear:ear goals? I tried this configuration (upgraded till the latest GA version of Maven EAR Plugin and added artifactTypeMappings option): {code:xml} <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-ear-plugin</artifactId> <version>3.0.2</version> <configuration> <version>7</version> <defaultLibBundleDir>lib</defaultLibBundleDir> <useBaseVersion>true</useBaseVersion> <artifactTypeMappings> <artifactTypeMapping type="test-jar" mapping="jar"/> </artifactTypeMappings> </configuration> </plugin> {code} for [^test-jar-in-ear-2.zip] maven project you provided and it works: {noformat} $ mvn clean package ... [INFO] ----------------------< frol:test-jar-in-ear-ear >---------------------- [INFO] Building test-jar-in-ear-ear 1.0-SNAPSHOT [3/3] [INFO] --------------------------------[ ear ]--------------------------------- [INFO] [INFO] --- maven-clean-plugin:2.5:clean (default-clean) @ test-jar-in-ear-ear --- [INFO] [INFO] --- maven-ear-plugin:3.0.2:generate-application-xml (default-generate-application-xml) @ test-jar-in-ear-ear --- [WARNING] Using useBaseVersion not yet fixed. [INFO] Generating application.xml [INFO] [INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ test-jar-in-ear-ear --- [WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent! [INFO] skip non existing resourceDirectory D:\Users\Marat\Documents\work\java\test-jar-in-ear\ear\src\main\resources [INFO] [INFO] --- maven-ear-plugin:3.0.2:ear (default-ear) @ test-jar-in-ear-ear --- [WARNING] Using useBaseVersion not yet fixed. [INFO] Copying artifact [jar:frol:test-jar-in-ear-lib:1.0-SNAPSHOT] to [lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT.jar] [INFO] Copying artifact [jar:frol:test-jar-in-ear-lib:tests:1.0-SNAPSHOT] to [lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT-tests.jar] [INFO] Copy ear sources to D:\Users\Marat\Documents\work\java\test-jar-in-ear\ear\target\test-jar-in-ear-ear-1.0-SNAPSHOT [INFO] Building jar: D:\Users\Marat\Documents\work\java\test-jar-in-ear\ear\target\test-jar-in-ear-ear-1.0-SNAPSHOT.ear [INFO] ------------------------------------------------------------------------ [INFO] Reactor Summary for test-jar-in-ear-parent 1.0-SNAPSHOT: [INFO] [INFO] test-jar-in-ear-parent ............................. SUCCESS [ 0.194 s] [INFO] test-jar-in-ear-lib ................................ SUCCESS [ 2.390 s] [INFO] test-jar-in-ear-ear ................................ SUCCESS [ 0.892 s] [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 3.655 s (Wall Clock) [INFO] Finished at: 2020-09-15T08:56:36+03:00 [INFO] ------------------------------------------------------------------------ $ cat ear/target/application.xml <?xml version="1.0" encoding="UTF-8"?> <application xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd" version="7"> <display-name>test-jar-in-ear-ear</display-name> <library-directory>lib</library-directory> $ unzip -l ear/target/test-jar-in-ear-ear-1.0-SNAPSHOT.ear Archive: ear/target/test-jar-in-ear-ear-1.0-SNAPSHOT.ear Length Date Time Name --------- ---------- ----- ---- 95 09-15-2020 09:04 META-INF/MANIFEST.MF 0 09-15-2020 09:04 META-INF/ 0 09-15-2020 09:04 lib/ 0 09-15-2020 09:04 META-INF/maven/ 0 09-15-2020 09:04 META-INF/maven/frol/ 0 09-15-2020 09:04 META-INF/maven/frol/test-jar-in-ear-ear/ 2076 09-15-2020 09:04 lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT-tests.jar 381 09-15-2020 09:04 META-INF/application.xml 1684 09-15-2020 08:56 META-INF/maven/frol/test-jar-in-ear-ear/pom.xml 96 09-15-2020 09:04 META-INF/maven/frol/test-jar-in-ear-ear/pom.properties 2082 09-15-2020 09:04 lib/frol-test-jar-in-ear-lib-1.0-SNAPSHOT.jar --------- ------- 6414 11 files {noformat} Refer to [{{org.apache.maven.plugins.ear.util.ArtifactTypeMappingService}}|https://github.com/apache/maven-ear-plugin/blob/maven-ear-plugin-3.0.2/src/main/java/org/apache/maven/plugins/ear/util/ArtifactTypeMappingService.java] class and to [{{org.apache.maven.plugins.ear.util.ArtifactRepository#getArtifacts}}|https://github.com/apache/maven-ear-plugin/blob/maven-ear-plugin-3.0.2/src/main/java/org/apache/maven/plugins/ear/util/ArtifactRepository.java#L138] method which is called by [{{org.apache.maven.plugins.ear.JarModule#resolveArtifact}}|https://github.com/apache/maven-ear-plugin/blob/maven-ear-plugin-3.0.2/src/main/java/org/apache/maven/plugins/ear/JarModule.java#L91] method when generating application.xml and packaging EAR file. > Unable to include dependencies of type test-jar > ----------------------------------------------- > > Key: MEAR-216 > URL: https://issues.apache.org/jira/browse/MEAR-216 > Project: Maven Ear Plugin > Issue Type: Improvement > Affects Versions: 2.10 > Reporter: Maxim Frolov > Priority: Major > Fix For: 3.1.0 > > Attachments: test-jar-in-ear-2.zip, test-jar-in-ear.zip > > > Please implement support for artifacts of type *test-jar*. > One of the use cases would be to build a test EAR as a mix of production and > test JARs where the test JARs are used to set up the test data used to test > the production code. > Currently including one or more dependencies of type test-jar causes > *LifecycleExecutionException*: > {noformat} > [ERROR] Failed to execute goal > org.apache.maven.plugins:maven-ear-plugin:2.10:generate-application-xml > (default-generate-application-xml) on project suite-systemtests-common-ear: > Failed to initialize ear modules: Unknown artifact type[test-jar] for > artifact_id -> [Help 1] > org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute > goal org.apache.maven.plugins:maven-ear-plugin:2.10:generate-application-xml > (default-generate-application-xml) on project suite-systemtests-common-ear: > Failed to initialize ear modules > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:217) > 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:320) > at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156) > at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537) > at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196) > at org.apache.maven.cli.MavenCli.main(MavenCli.java:141) > 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:290) > at > org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) > at > org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) > at > org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) > Caused by: org.apache.maven.plugin.MojoExecutionException: Failed to > initialize ear modules > at > org.apache.maven.plugin.ear.AbstractEarMojo.execute(AbstractEarMojo.java:260) > at > org.apache.maven.plugin.ear.GenerateApplicationXmlMojo.execute(GenerateApplicationXmlMojo.java:162) > at > org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101) > at > org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209) > ... 19 more > Caused by: org.apache.maven.plugin.ear.UnknownArtifactTypeException: Unknown > artifact type[test-jar] for common-domain-impl > at > org.apache.maven.plugin.ear.EarModuleFactory.newEarModule(EarModuleFactory.java:88) > at > org.apache.maven.plugin.ear.AbstractEarMojo.execute(AbstractEarMojo.java:250) > ... 22 more > {noformat} -- This message was sent by Atlassian Jira (v8.3.4#803005)