问题标签 [jarjar]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
6338 浏览

java - 如何从命令行使用 jarjar?

我无法从命令行使用 jarjar 将简单的 Scala 程序与 scala 运行时库结合起来。

jarjar 正确检测依赖关系:

但是,将它们组合起来不起作用:

我得到的 jar 文件仍然依赖于 scala-library.jar。我是否添加 CLASSPATH 变量没有区别。我的 rules.jjl 文件如下所示:

该怎么办?

0 投票
1 回答
2169 浏览

java - 收缩 jar 及其依赖项

我有一堆罐子,如 a.jar、b.jar、c.jar、d.jar。a.jar 正在使用剩余的罐子。我在 a.java 中使用 Test.java,剩下的 jars 由 a.java 使用。

我想做一个只包含必要类的小罐子。其实我已经注意到 jarjar 工具,但它的文档并不闪亮。

顺便说一句,我没有使用 Maven。

有什么帮助吗?

谢谢

0 投票
3 回答
3783 浏览

maven - 如何使用 Maven 创建 JarJar'd 工件,其中使用工件不会拉取传递依赖项?

我目前有一个用 Maven 构建的 Java 测试库,并作为 jar 分发。我的项目依赖于一个非常常见的库(Objectweb ASM),并且我遇到了一些问题,即早期且不兼容的 ASM 版本已经在类路径中。因此,我开始使用jarjar-maven-plugin创建 jar,在内部重新打包 ASM,使其不会与其他版本的 ASM 冲突。

这执行得很好,我的库可以毫无问题地作为依赖项引入。

然而,因为我的项目在 ASM 上有编译范围的依赖,所以每当一个客户端项目添加我的库时,传递依赖也都被引入。因此,假设他们使用特定版本的 ASM,并且他们还将我所依赖的版本添加到类路径中,他们的行为未定义。我想避免这种情况,并允许客户依赖 JarJar'd 工件,而不会让 Maven 不必要地和潜在地危险地拉下传递依赖项。

如何创建用户可以依赖的 JarJar'd 工件而不拉取传递依赖?

0 投票
3 回答
2947 浏览

java - Android:错误包括/重新打包引用 javax 核心类的依赖项

我正在开发一个使用 Maven 作为构建工具的 Android 应用程序。我设法正确设置了evertyhing(maven依赖项被导出到apk等),但是我还有一个让我发疯的问题。

我想在我的 POM 文件中包含对simpleframework 的 xml 解析器的依赖关系,如下所示:

当我发布mvn install项目时,我收到以下错误(截断):

我知道错误是由引用这些 javax 类的简单 xml 解析器导致的,但是我还没有找到解决方案(设置 --core-library 标志没有用)。

我目前正在尝试使用 maven-jarjar-pluging 重新打包依赖项,但这似乎也不起作用。

谁能帮我解决这个问题?非常非常感谢提前!

0 投票
1 回答
553 浏览

java - Maven JarJar 插件:排除“提供”范围?

有没有办法让 Maven JarJar 插件排除“提供”范围内的项目?这看起来很简单......如果提供了一些东西,我为什么要将它包含在我的 megajar 中?

0 投票
3 回答
6313 浏览

ant - 如何使用 zipfileset src 属性而不必为我的所有 jar 手动指定它?

我目前有这个:

问题是我必须手动指定每个 jar,因为我需要考虑 src 参数。我想要这样的东西:

并将它们的内容提取并包含在我生成的存档中。这可能吗?

0 投票
1 回答
1078 浏览

maven - JarJar - Unable to JarJar/Embedded 错误:ZIP 文件必须至少有一个条目

我现在在我的 Maven 项目中遇到了 JarJar 最奇怪的错误。它不断吐出以下错误:

看一下我的构建文件,很明显 ZIP 将包含多个文件:

我究竟做错了什么?可以在此处找到构建的完整日志。此外,我的项目树可以在这里找到。谁能看到问题出在哪里?

0 投票
2 回答
2485 浏览

java - 如何使用 jarjar 从默认包中重新打包 .class 文件?

是否可以将 jar 中的 .class 文件从默认包移动到另一个命名包,以便我可以导入和使用它们?

在这里浏览其他问题后,我认为 jarjar 可能正是我正在寻找的东西,但我不知道如何使用它。

所以我的问题是如何使用 jarjar 将 .class 文件从默认包重新打包到另一个命名包?

编辑:我想澄清一些事情 - 我没有要重新打包的 jar 的来源,所以我不知道如何重新编译代码。混淆和反射是不可能的。

EDIT2:使用 jarjar 看起来非常简单:) java -jar jarjar.jar process rules.rules in.jar out.jar

rules.rules 看起来像这样: rule a net.ylivay.src.a

问题解决了!

0 投票
1 回答
2696 浏览

ant - 使用 Jar Jar Links 排除空目录

我正在使用来自Jar Jar Links的 Ant 任务将来自第 3 方 jar 文件(objenesis)的类嵌入到我的可分发 jar 文件(example.jar)中。Jar Jar 会将原始包 (org.objenesis) 中的类转换为我选择的一个。

它可以工作,但它会在可分发的 jar 中留下空目录。

这是一个简化的 build.xml:

example.jar 的内容示例包括(如预期的那样):

还有这些空目录(不受欢迎):

我的问题:如何排除这些空目录?

我尝试了“zap”选项(在文档中列出),但没有奏效。

0 投票
1 回答
581 浏览

gson - GSON + HTC 欲望:冲突。可能的解决方案 jarjar.jar 导致错误

我正在尝试在 Android 应用程序中使用 GSON,但它会导致崩溃。经过一番阅读,HTC 似乎包含了 GSON,这会导致冲突。一种建议的解决方案是使用 jarjar.jar 重命名 gson 类来解决冲突。当我尝试这样做时,我收到此错误:

语法错误:第 1 行错误:[{\rtf1\ansi\ansicpg1252\cocoartf1038\cocoasubrtf360]

我正在执行的命令:

java -jar jarjar-1.2.jar 进程 rules.txt gson-2.1.jar myjson-2.1.jar

rules.txt:规则 com.google.gson.** com.google.myjson.@1

有任何想法吗?