Skip to content

byte-buddy-maven-plugin resolves transformation dependency using packaging from the current module #1919

Description

@robotmrv

I have a multi module maven project that uses quarkus. quarkus have its own packaging "quarkus" for application module.

Looks like net.bytebuddy.build.maven.ByteBuddyMojo.Transformer.ForConfiguredPlugin#toClassLoader invokes net.bytebuddy.build.maven.ClassLoaderResolver#resolve with a wrong packaging

it reproduces on maven modules with custom packaging like "quarkus".
There are classes in "quarkus" module that could be transformed so it could not be skipped.

maven build produces error

Caused by: org.eclipse.aether.transfer.ArtifactNotFoundException: my-group:my-artifact:quarkus:1.0.0-SNAPSHOT was not found in https://my-reposytory during a previous attempt. This failure was cached in the local repository and resolution is not reattempted until the update interval of saas-snapshots-plugin has elapsed or updates are forced
    at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.newException (DefaultUpdateCheckManager.java:225)
    at org.eclipse.aether.internal.impl.DefaultUpdateCheckManager.checkArtifact (DefaultUpdateCheckManager.java:201)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.gatherDownloads (DefaultArtifactResolver.java:586)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver.java:525)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver.java:449)
    at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver.java:261)
    at org.eclipse.aether.internal.impl.DefaultRepositorySystem.resolveDependencies (DefaultRepositorySystem.java:353)
    at net.bytebuddy.build.maven.ClassLoaderResolver.doResolve (ClassLoaderResolver.java:122)
    at net.bytebuddy.build.maven.ClassLoaderResolver.resolve (ClassLoaderResolver.java:103)
    at net.bytebuddy.build.maven.ByteBuddyMojo$Transformer$ForConfiguredPlugin.toClassLoader (ByteBuddyMojo.java:1164)
    at net.bytebuddy.build.maven.ByteBuddyMojo.transform (ByteBuddyMojo.java:392)
    at net.bytebuddy.build.maven.ByteBuddyMojo$ForLifecycleTypes.apply (ByteBuddyMojo.java:612)
    at net.bytebuddy.build.maven.ByteBuddyMojo.execute (ByteBuddyMojo.java:315)
    at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:126)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute2 (MojoExecutor.java:328)
    at org.apache.maven.lifecycle.internal.MojoExecutor.doExecute (MojoExecutor.java:316)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:212)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:174)
    at org.apache.maven.lifecycle.internal.MojoExecutor.access$000 (MojoExecutor.java:75)
    at org.apache.maven.lifecycle.internal.MojoExecutor$1.run (MojoExecutor.java:162)
    at org.apache.maven.plugin.DefaultMojosExecutionStrategy.execute (DefaultMojosExecutionStrategy.java:39)
    at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:159)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:105)
    at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:73)
    at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:53)
    at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:118)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:261)
    at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:173)
    at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:101)
    at org.apache.maven.cli.MavenCli.execute (MavenCli.java:906)
    at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:283)
    at org.apache.maven.cli.MavenCli.main (MavenCli.java:206)
    at jdk.internal.reflect.DirectMethodHandleAccessor.invoke (DirectMethodHandleAccessor.java:103)
    at java.lang.reflect.Method.invoke (Method.java:580)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:255)
    at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:201)
    at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:361)
    at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:314)

configuration example

<plugin>
    <groupId>net.bytebuddy</groupId>
    <artifactId>byte-buddy-maven-plugin</artifactId>
    <version>${byte-buddy.version}</version>
    <executions>
        <execution>
            <goals>
                <goal>transform</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <skip>${skip-byte-buddy}</skip>
        <transformations>
            <transformation>
                <plugin>MyPlugin</plugin>
                <groupId>my-group</groupId>
                <artifactId>my-artifact</artifactId>
                <version>${my-version}</version>
            </transformation>
        </transformations>
    </configuration>
</plugin>

byte-buddy-maven-plugin version 1.18.9

Metadata

Metadata

Assignees

Labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions