[ https://issues.apache.org/jira/browse/MEAR-216?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17195895#comment-17195895
]
Marat Abrarov commented on MEAR-216:
------------------------------------
[~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)
|