用maven汇编插件覆盖java库类



我正试图通过反编译和重写一些功能来扩展现有的闭源产品,以满足我的需求(基本上是黑暗模式,以节省我的眼睛)。

当我从IDE启动时,一切都很好,因为IDE可以让我自己的类,使用相同的名称和所有内容,用maven覆盖我所依赖的jar中的类,可能是通过正确地排序类路径。

现在,我想让它能够自动运行,而不必每次都使用IntelliJ来启动我的小破解,但assembly:single-maven任务似乎拒绝在分解的依赖项上添加我的类,如下所示:already added, skipping

如何在不必对每个类进行反编译并丢弃原始jar的情况下反转此顺序或允许重写?

我在AbstractArchiver.java 上阅读Plexus Archiver的源代码时找到了答案

<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.4.2</version>
<configuration>
<archive>
<manifest>
<mainClass>MyLittleLaucher</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archiverConfig>
<duplicateBehavior>add</duplicateBehavior>
</archiverConfig>
</configuration>
</plugin>

使用3.4.2版本很重要,因为默认版本有缺陷(2.2-beta5),然后可以使用<duplicateBehavior>add</duplicateBehavior>强制覆盖文件。它现在运行得很好。

最新更新