gpt4 book ai didi

java - Maven "shaded"JAR 文件名中以 "original"为前缀

转载 作者:IT老高 更新时间:2023-10-28 20:54:56 32 4
gpt4 key购买 nike

我正在使用“shade”Maven2 插件构建一个整体 JAR,其中所有 Java 依赖项捆绑在一起。 pom.xml 中的相关部分非常简单:

<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<finalName>${project.artifactId}-${project.version}-SHADED</finalName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<mainClass>com.mypackage.MyClass</mainClass>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>

但是,构建结果很奇怪。看来这个 Maven 插件实际上创建了两个文件:

myartifact-1.0.0-SHADED.jar  (zero bytes)
original-myartifact-1.0.0-SHADED.jar (10 MB)

前缀为“original”的 JAR 文件已正确构建,并且功能正常。我想我可以重命名它以去掉那个前缀,然后继续我的快乐之路。

但是,我很好奇“shade”插件在这里会发生什么。看起来“原始”文件是临时工作空间类型的东西,打算在进程结束时重命名,而最终重命名根本没有完成。但是,对此没有明显的解释(即文件系统权限等)。有没有人见过这个?

最佳答案

我知道这个问题很老,但认为值得添加以下信息。

我认为史蒂夫最初想要的输出是 maven-shade-plugin documentation 的此页面上给出的输出。 .

<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>

关于java - Maven "shaded"JAR 文件名中以 "original"为前缀,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4088701/

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