gpt4 book ai didi

java - maven shade plugin 会在 Windows 上自动缩小包名吗?

转载 作者:可可西里 更新时间:2023-11-01 11:23:41 25 4
gpt4 key购买 nike

我有两个本地 Artifact :一个是 com.org.abc,另一个是 COM.org.xyz。我创建了一个阴影 jar,包括这 2 个和所有其他需要的依赖项。

当我在 Linux 上创建一个 SHADED JAR 时,会创建 2 个单独的文件夹:com 和 COM。但在 WINDOWS 上仅创建单个文件夹。

当我在 Windows 上创建一个带阴影的 jar 时,它会创建一个文件夹:com.org,其中包含文件夹 abc 和 xyz。不会创建单独的大写 COM 文件夹。因此,依赖于大写 COM 包的代码失败,出现无法初始化类错误。

(我没有命名上面的 2 个,它们是由 2 个独立的团队单独创建和分发的,许多团队一直在使用这些 jar,所以更改包名是一个很长的周期)

Maven 配置:

<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-install-plugin</artifactId>
<version>2.5.2</version>
<executions>
<execution>
<id>add-mylocal</id>
<phase>clean</phase>
<configuration>
<file>${jars.path}/mylocal.jar</file>
<repositoryLayout>default</repositoryLayout>
<groupId>com.org</groupId>
<artifactId>mylocal</artifactId>
<version>1.0</version>
<packaging>jar</packaging>
<generatePom>true</generatePom>
<localRepositoryPath>${local.repo.path}</localRepositoryPath>
</configuration>
<goals>
<goal>install-file</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.1.0</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<source>1.7</source>
<target>1.7</target>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Build-Version>${buildversion} (${timestamp})</Build-Version>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
</plugins>

有什么解决方案可以让它在 Windows 上运行吗?

最佳答案

记录评论中的讨论作为后代的答案:

这里的问题不是 maven-shade-plugin,它不修改(甚至不关心)包的大小写。这里的问题是底层 [windows] 文件系统不区分大小写,并且不区分 comCOM

除非您愿意更改包名称,否则在 maven-shade-plugin 中没有解决方法。您必须使用区分大小写的文件系统。曾经有吸引力的选择是使用 Windows Subsystem for Linux ,它提供了自己的区分大小写的文件系统(ext4,IIRC)。

还有一种方法可以使 NTFS 文件系统区分大小写(参见,例如 this SU thread),但我自己从未这样做过,并且不能根据个人经验推荐它。

关于java - maven shade plugin 会在 Windows 上自动缩小包名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51184126/

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