问题标签 [onejar]

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 投票
1 回答
163 浏览

android - 为包含其他 jar 文件的 Android 项目创建一个可分发的 jar 文件

我的目标是为 Android 项目创建一个可分发的 jar 文件,其中包括一些其他 jar 文件。据我了解,“标准” jar 文件中不允许包含其他 jar 文件,所以我想我需要在这里学习一个技巧。

  • 我一直在尝试为此设置One-Jar,但我一直遇到问题。是否有任何将 One-jar 用于 Android 项目(使用 Eclipse)的开发指南?

  • 我应该看看还有其他好的选择吗?

0 投票
1 回答
215 浏览

java - 在 jar 中引用 jar

我有一个通过清单文件引用其他 6 个 jar 的 jar 文件。

但是,我现在想尝试将 jar 编译到一个 jar 文件中,原因是:我希望将它们缓存起来,这样小程序的加载时间就不会很长,因为需要这些 jar 之一,而不是等待很长时间下载所有必需的文件,然后将其存储在缓存中。

我尝试在构建中包含引用的 Jar 文件,不幸的是,这一切都会导致 java.lang.NoClassDefFoundError 错误,所以我不得不添加一个清单文件。

实现这一目标的最佳/最简单方法是什么?我正在使用 eclipse,而不是用 ant 构建。

0 投票
1 回答
654 浏览

java - 运行打包为 .jar 的 JOGL 项目时找不到路径

我用 Scala 和 JOGL 创建了一个 OpenGL 项目,并试图使用 sbt 和 one-jar 插件将它打包成一个 .jar 文件。

.jar 的创建没有任何错误,但是当我尝试运行 .jar 时,我收到一条错误消息,指出在主 .jar 中找不到 JOGL .jar。我跑去jar tf看主罐子里的东西,我看到里面“丢失”的罐子。

“失踪”的罐子是gluegen-rt-natives-windows-amd64.jar

这是我得到的错误:

这是来自的输出jar tf

0 投票
2 回答
3088 浏览

scala - 如何使用 sbt (one-jar) 发布附加工件

我是 scala 和 sbt 的新手。我设法用 one-jar 插件创建了一个可执行 jar。

我正在尝试将这个额外的(一个罐子)工件发布到工件,但我无法做到这一点。有人知道该怎么做吗?

我看了一下http://www.scala-sbt.org/0.12.3/docs/Detailed-Topics/Artifacts.html但我无法让它工作。

(玩 2.1.2,sbt 0.12.3,scala 2.10)

0 投票
1 回答
234 浏览

gradle - 将不依赖于胖 onejar 的第二个 jar 文件包括在内

我有一个项目,它只为测试目的构建 fat onejar 文件。因此,我不希望有一个单独的测试类作为对主源的依赖,但我确实希望它包含在 onejar 中。奇怪的场景,我知道。

我正在使用com.smokejumperit.gradle.OneJarPlugin插件(source here),很明显它会在这里获取要包含在 onejar 中的文件列表:

jar.output.files用于发布,所以我不希望发布第二个 jar 文件,并且两者project.configurations将为主要源 jar 定义依赖项,我也不希望第二个 jar 成为该文件的依赖项。

第二个 jar 文件是用一个任务构建的:

...所以我可以通过integrationJar.outputs.files. 如果有一种明确的方法可以将其添加到oneJar.input.files,我会很高兴,但我无法弄清楚如何做到这一点。我试过这样的事情:

...但最后一次打印的结果仍然缺少集成 jar 文件。

想法?

0 投票
1 回答
1218 浏览

java - 如何使用 HBase 连接创建 Jetty Spring 应用程序

我正在使用OneJar Maven Plugin在单个 jar 包中创建一个带有 Embedded jetty 的 Spring 应用程序。它是一个 api,用于服务由 Apache Hbase 支持的请求。它编译罚款但是当我运行它时:

然后,当 Spring 上下文初始化时,我得到了这个堆栈跟踪

这两个有关系吗?我该如何解决?这是我构建的 hConnection bean:

我必须为 Hadoop 配置使用完全限定的包名称,因为它与org.springframework.context.annotation.Configuration注释冲突。

HConnection 的相关单元测试通过mvn test

在我看来,这些JarClassLoader警告也与此有关。我想知道我是否应该排除某些包裹?顺便说一句,这是

更新:问题仍然存在,但偶然发现我的 Apache cxf 版本错误。我需要 2.7.2,但有 2.7.5。我尝试将我的 HBase Connection 实例化移动到它自己的类,而不是 Spring Annotation 配置。从某种意义上说,这有助于解决这种情况,我现在可以运行我的应用程序并 ping 健康检查,但我仍然无法连接到 HBase。当我请求使用我的 HBase 连接的 URL 时,我得到以下堆栈跟踪:

...由于 SO 长度限制而省略了一些堆栈跟踪

对我来说不太有意义的错误的一部分是:

我还不明白什么代码或包试图解析实际的 jar?这意味着什么?我认为这可能是 Hadoop 在类路径上寻找其配置文件,但我的类路径包括

这是我保存 Hadoop 和 Hbase 配置文件的地方。看起来像罪魁祸首的部分是我的 HBaseConnection 类的初始化:

更新:这是结果mvn dependency:tree

0 投票
2 回答
198 浏览

maven - onejar-maven-plugin 设置jar加载顺序

我一直在使用库apache-log4j-extras进行日志记录。它包含类org.apache.log4j.Logger

现在我不得不引用一些第 3 方库,它使用logback并且在它的依赖项中有log4j-over-slf4j (jar)。不幸的是,后一个 jar 还包含类org.apache.log4j.Logger

看起来后一个类是 onejar 类加载器的首选......

我不需要logbacklog4j-over-slf4j。只想要我的org.apache.log4j.Loggerapache-log4j-extras回来。Onejar-maven-plugin 有哪些选择?

编辑:这似乎是IDEA中调试模式的问题,而不是onejar。但是问题仍然存在:如何确保使用 Onejar 加载所需的类?

EDIT2:例如,在 C# 中,可以使用“ extern alias ”功能轻松解决。

0 投票
1 回答
293 浏览

java - 如何将 Java ServiveLocator 与 One-Jar 一起使用

我正在使用 One-Jar 工具将我的应用程序打包在一个 jar 中:

http://one-jar.sourceforge.net/

它可以工作,但是我在依赖模块中实现的服务存在问题,该模块在单独的 jar 中实现。

该模块使用标准的Java ServiceLoader 机制来提供其服务,即jar 有一个文件META-INF/services/package.name.ServiceProviderClass,它指定要实例化的服务具体类。

但是,当这个 jar 嵌入到由 One-Jar 创建的应用程序“fat-jar”中时,服务加载器机制不会发现它的服务。

知道如何使它工作吗?

干杯,保罗

0 投票
4 回答
4392 浏览

scala - 有没有办法用 sbt-onejar 在同一个 SBT 项目中自动打包多个主类?

我有一个SBT项目,其中包含多个类main,即MyClass extends App. 当只有一个这样的类时,One-jar可以正常工作。如果它找到多个类,它会提示我选择要打包的类:

我想配置一个jar来自动打包所有的主要类。在文档中,它将默认主类定义为mainClass in run in Compile,因此看起来它只需要一个值。

如果这是不可能的,我很好奇为什么不。:)

现在我只能想到一些技巧,比如为每个 jar 创建一个代理项目或mainClass在每次调用之前在 SBT 中设置一个one-jar(每次构建多次)。这些方法显然有其不足之处。

0 投票
3 回答
1649 浏览

jar - 通过 sbt 打包的 one-jar 中的类路径资源

我有一个使用 SBT 构建的项目,它使用 one-jar 插件打包单个 jar。该项目在 src/main/resources/fixture 中包含一堆 json 文件,我曾经通过

不幸的是,这不再起作用,因为没有返回资源。我认为 one-jar 使用了一种特殊的类加载机制?解决这个问题的最佳方法是什么?