maven-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Marat Abrarov (Jira)" <j...@apache.org>
Subject [jira] [Comment Edited] (MEAR-216) Unable to include dependencies of type test-jar
Date Tue, 15 Sep 2020 06:14:00 GMT

    [ 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)

Mime
View raw message