You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Guillaume Nodet (Jira)" <ji...@apache.org> on 2021/11/22 14:46:00 UTC

[jira] [Closed] (MNG-7341) Extension classloader is different when loaded from .mvn/extensions and from the pom

     [ https://issues.apache.org/jira/browse/MNG-7341?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Guillaume Nodet closed MNG-7341.
--------------------------------
    Resolution: Fixed

That's an expected different between build extensions and core extensions, see [http://takari.io/book/91-maven-classloading.html.]

 

The commons-lang3 jar is made available from core extensions, but is not an exported artifact to build extensions.

> Extension classloader is different when loaded from .mvn/extensions and from the pom
> ------------------------------------------------------------------------------------
>
>                 Key: MNG-7341
>                 URL: https://issues.apache.org/jira/browse/MNG-7341
>             Project: Maven
>          Issue Type: Bug
>            Reporter: Guillaume Nodet
>            Priority: Major
>
> The `commons-lang3` jar is available in the extension classloader when loaded from {{.mvn/extensions.xml}} but not when loaded from the {{{}pom.xml{}}}.
>  
> When loaded from {{pom.xml}}
> {code:java}
> [DEBUG] Created new class realm extension>org.apache.maven:maven-caching:4.0.0-alpha-1-SNAPSHOT
> [DEBUG] Importing foreign packages into class realm extension>org.apache.maven:maven-caching:4.0.0-alpha-1-SNAPSHOT
> [DEBUG]   Imported:  < maven.api
> [DEBUG] Populating class realm extension>org.apache.maven:maven-caching:4.0.0-alpha-1-SNAPSHOT
> [DEBUG]   Included: org.apache.maven:maven-caching:jar:4.0.0-alpha-1-SNAPSHOT
> [DEBUG]   Included: org.apache.httpcomponents:httpclient:jar:4.5.6
> [DEBUG]   Included: org.apache.httpcomponents:httpcore:jar:4.4.10
> [DEBUG]   Included: commons-logging:commons-logging:jar:1.2
> [DEBUG]   Included: commons-codec:commons-codec:jar:1.10
> [DEBUG]   Included: net.openhft:zero-allocation-hashing:jar:0.9
> [DEBUG]   Included: com.github.albfernandez:juniversalchardet:jar:2.4.0
> [DEBUG]   Included: com.google.code.findbugs:jsr305:jar:3.0.2
> [TRACE] Potential problem: org.apache.maven.caching.LocalCacheRepositoryImpl
> java.lang.NoClassDefFoundError: org/apache/commons/lang3/tuple/Pair
>     at java.lang.Class.getDeclaredMethods0 (Native Method)
>     at java.lang.Class.privateGetDeclaredMethods (Class.java:3166)
>     at java.lang.Class.getDeclaredMethods (Class.java:2309)
>     at com.google.inject.internal.DeclaredMembers.getDeclaredMethods (DeclaredMembers.java:40)
>     at com.google.inject.spi.InjectionPoint.getDeclaredMethods (InjectionPoint.java:757)
>     at com.google.inject.spi.InjectionPoint.getInjectionPoints (InjectionPoint.java:676)
> {code}
> vs when loaded from {{.mvn/extensions.xml}}
> {code:java}
> [DEBUG] Populating class realm coreExtension>org.apache.maven:maven-caching:4.0.0-alpha-1-SNAPSHOT
> [DEBUG]   Included /Users/gnodet/.m2/repository/org/apache/maven/maven-caching/4.0.0-alpha-1-SNAPSHOT/maven-caching-4.0.0-alpha-1-SNAPSHOT.jar
> [DEBUG]   Included /Users/gnodet/.m2/repository/org/apache/httpcomponents/httpclient/4.5.6/httpclient-4.5.6.jar
> [DEBUG]   Included /Users/gnodet/.m2/repository/org/apache/httpcomponents/httpcore/4.4.10/httpcore-4.4.10.jar
> [DEBUG]   Included /Users/gnodet/.m2/repository/commons-logging/commons-logging/1.2/commons-logging-1.2.jar
> [DEBUG]   Included /Users/gnodet/.m2/repository/commons-codec/commons-codec/1.10/commons-codec-1.10.jar
> [DEBUG]   Included /Users/gnodet/.m2/repository/net/openhft/zero-allocation-hashing/0.9/zero-allocation-hashing-0.9.jar
> [DEBUG]   Included /Users/gnodet/.m2/repository/com/github/albfernandez/juniversalchardet/2.4.0/juniversalchardet-2.4.0.jar
> [DEBUG]   Included /Users/gnodet/.m2/repository/com/google/code/findbugs/jsr305/3.0.2/jsr305-3.0.2.jar
> {code}



--
This message was sent by Atlassian Jira
(v8.20.1#820001)