gpt4 book ai didi

Maven Shade 插件 + 原始字符串

转载 作者:行者123 更新时间:2023-12-05 07:59:36 27 4
gpt4 key购买 nike

我正在使用 shade 插件创建一个包含所有依赖项的 jar。在我的 pom.xml 中应用此配置相对简单:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<relocations>
<relocation>
<shadedPattern>com.company.lib.</shadedPattern>
<excludes>
<exclude>java.**</exclude>
<exclude>com.company.app.**</exclude>
<exclude>META-INF/**</exclude>
</excludes>
</relocation>
</relocations>
</configuration>

但是,反编译生成的代码,我意识到我的字符串文字的内容已被更改。例如,像这样的字符串: String text = "this-is-a-demo";变成了String text = "com.company.lib.this-is-a-demo" .此更改在我的应用程序中执行了运行时错误。

关注本文https://jira.codehaus.org/browse/MSHADE-104 , 我试图避免添加元素 <rawString>true</rawString> .但是当我再次构建项目时,在 maven-shade-plugin 中发生了 NullPointerException。

Caused by: org.apache.maven.plugin.MojoExecutionException: Error creating shaded jar: null
at org.apache.maven.plugins.shade.mojo.ShadeMojo.execute(ShadeMojo.java:567)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:106)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:208)
... 19 more

有谁知道如何避免字符串文字被更改?

最佳答案

您缺少一个 <pattern>在你的<relocation>配置。

我不确定这是否是 NullPointerException 的原因,但无论如何您都应该将其放入,这样执行的重定位就不会那么令人惊讶了。

关于Maven Shade 插件 + 原始字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21336797/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com