[
https://issues.apache.org/jira/browse/MSHADE-345?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17693720#comment-17693720
]
Javier Neira Sanchez edited comment on MSHADE-345 at 2/26/23 10:19 PM:
-----------------------------------------------------------------------
[~icshuo] hey, thanks for the hint to try to reroduce the issue. I followed it,
you can check that version at
[https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation/src/main/scala]
The scala app looks like:
{code:java}
import org.apache.logging.log4j.scala.Logger;
import org.apache.logging.log4j.scala.Logging;
object MyApp extends App with Logging {
println("Logger FQCN: " + Logger.FQCN)
logger.info("Test Logging")
}
{code}
Executing the app shows
{code:java}
Logger FQCN: relocated.scala.Logger${code}{code}
Which still seems to be correct And, well, the bytecode generated for relocated
classes also looks good, for example:
{code:java}
{code:java}
public void delayedInit(relocated.scala.Function0<relocate
Code:
0: aload_0
1: aload_1
2: invokestatic #65 // Method reloca0;)V
5: return{code}
was (Author: jneira):
[~icshuo] hey, thanks for the hint to try to reroduce the issue. I followed it,
you can check that version at
[https://github.com/jneira/maven-shade-plugin/tree/SHADE-345_scala-package-relocation/src/it/projects/MSHADE-345_scala-package-relocation/src/main/scala]
The scala app looks like:
{code:java}
import org.apache.logging.log4j.scala.Logger;
import org.apache.logging.log4j.scala.Logging;
object MyApp extends App with Logging {
println("Logger FQCN: " + Logger.FQCN)
logger.info("Test Logging")
}
{code}
Executing the app shows
{code:java}
Logger FQCN: relocated.scala.Logger${code}
Which still seems to be correct
And, well, the bytecode generated for relocated classes also looks good, for
example:
{code:java}
public void delayedInit(relocated.scala.Function0<relocate
Code:
0: aload_0
1: aload_1
2: invokestatic #65 // Method reloca0;)V
5: return{code}
> Package relocation appears not to work with Scala
> -------------------------------------------------
>
> Key: MSHADE-345
> URL: https://issues.apache.org/jira/browse/MSHADE-345
> Project: Maven Shade Plugin
> Issue Type: Bug
> Reporter: Graham Pople
> Priority: Major
> Attachments: image (4).png
>
>
> (Apologies if this is a known issue, I searched but couldn't find it.)
> I have a small pom.xml that's simply pulling in two dependent libraries from
> Maven, and shading them:
> {code:java}
> <?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0"
> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd">
> <modelVersion>4.0.0</modelVersion>
> <groupId>com.couchbase.client</groupId>
> <artifactId>scala-deps</artifactId>
> <version>1.1.1-SNAPSHOT</version>
> <packaging>jar</packaging>
> <name>Couchbase Scala Dependencies</name>
> <description>Shadowing dependencies for Scala prokect</description>
> <dependencies>
> <dependency>
> <groupId>com.github.plokhotnyuk.jsoniter-scala</groupId>
> <artifactId>jsoniter-scala-core_2.12</artifactId>
> <version>1.0.0</version>
> </dependency>
> <dependency>
> <groupId>com.github.plokhotnyuk.jsoniter-scala</groupId>
> <artifactId>jsoniter-scala-macros_2.12</artifactId>
> <version>1.0.0</version>
> </dependency>
> </dependencies>
> <build>
> <plugins>
> <plugin>
> <groupId>org.apache.maven.plugins</groupId>
> <artifactId>maven-shade-plugin</artifactId>
> <version>3.2.1</version>
> <configuration>
> <relocations>
> <relocation>
> <pattern>com.github.plokhotnyuk</pattern>
>
> <shadedPattern>com.couchbase.client.scala.deps.plokhotnyuk</shadedPattern>
> </relocation>
> </relocations>
> <createSourcesJar>true</createSourcesJar>
> <shadeSourcesContent>true</shadeSourcesContent>
> <shadedArtifactAttached>true</shadedArtifactAttached>
> </configuration>
> <executions>
> <execution>
> <phase>package</phase>
> <goals>
> <goal>shade</goal>
> </goals>
> </execution>
> </executions>
> </plugin>
> </plugins>
> </build>
> </project> {code}
> From this I expect to get an uber-jar containing those dependencies, with
> classfiles inside
> com/couchbase/client/scala/deps/plokhotnyuk/jsoniter_scala/..., and with
> those files starting "package com.couchbase.client.scala.deps.plokhotnyuk...".
> However, while the files are moved to the correct file structure, the package
> names aren't adjusted. Here's a screenshot from the sources jar:
> !image (4).png!
>
> And my experiments with the binary jar itself seem to indicate that the same
> issue exists at the bytecode level in the regular jar too, e.g. the
> classfiles are in the right place but the package hasn't been changed.
>
--
This message was sent by Atlassian Jira
(v8.20.10#820010)