标签: uberjar

使lein uberjar没有源文件

我正在使用'lein uberjar'制作我项目的可执行jar文件.正确创建jar并按预期运行.

我只是想知道是否有可能不在生成的.jar中包含我的源.clj文件,因为我打算分发它,我不希望我的源文件可供公众使用.

我正在使用lein 1.7.1

如果lein不可能,如果我只是手动从jar中删除.clj文件,它会工作吗?我做了一个测试并且它有效,我希望确保这样做是安全的.

提前致谢.

clojure uberjar leiningen

13
推荐指数
1
解决办法
1965
查看次数

如何在gradle.build中使用fatjar插件时指定主类

我有兴趣在一个可执行的jar文件中构建一个包含所有模块依赖项和外部jar的jar,我将能够运行它java -jar myApp.jar.

我有模块A依赖于模块B.目前我正在使用gradle,我的build.gradle脚本如下所示:

    apply plugin: 'fatjar'
    description = "A_Project"
    dependencies {
      compile project(':B_Project')
      compile "com.someExternalDependency::3.0"
    }
Run Code Online (Sandbox Code Playgroud)

当我通过gradle命令构建它时:clean build fatjar按预期创建一个胖罐"A.jar".但是,如上所述,运行它会导致: no main manifest attribute, in A.jar 如何修改我的build.gradle文件并指定主类或清单?

jar build uberjar gradle intellij-13

13
推荐指数
2
解决办法
2万
查看次数

在多模块项目中使用Maven shade插件 - NullPointerException

我有一个场景,我需要创建一个包含所有模块及其依赖项的多模块maven项目的超级jar.我尝试使用maven shade插件.但它似乎只有在模块级别使用它时才有效.如果我在父pom中添加插件条目,那么构建中断(它会尝试遮蔽父pom)

 [INFO] Replacing original artifact with shaded artifact.
[INFO] Replacing null with C:\Projects\foo.bar\target\foobar-0.0.1-SNAPSHOT-shaded.pom
[INFO] ------------------------------------------------------------------------
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error creating shaded jar: null: NullPointerException -> [Help 1]
Run Code Online (Sandbox Code Playgroud)

它似乎有意义,因为<packaging>父母maven项目是pom.但应该有一些方法为多模块项目创建一个超级jar ...任何想法人???

uberjar maven maven-shade-plugin

12
推荐指数
1
解决办法
1万
查看次数

为什么format("kafka")失败并且"找不到数据源:kafka".(即使是超级罐)?

我使用HDP-2.6.3.0和Spark2包2.​​2.0.

我正在尝试使用Structured Streaming API编写Kafka使用者,但是在将作业提交到群集后我收到以下错误:

Exception in thread "main" java.lang.ClassNotFoundException: Failed to find data source: kafka. Please find packages at http://spark.apache.org/third-party-projects.html
at org.apache.spark.sql.execution.datasources.DataSource$.lookupDataSource(DataSource.scala:553)
at org.apache.spark.sql.execution.datasources.DataSource.providingClass$lzycompute(DataSource.scala:89)
at org.apache.spark.sql.execution.datasources.DataSource.providingClass(DataSource.scala:89)
at org.apache.spark.sql.execution.datasources.DataSource.sourceSchema(DataSource.scala:198)
at org.apache.spark.sql.execution.datasources.DataSource.sourceInfo$lzycompute(DataSource.scala:90)
at org.apache.spark.sql.execution.datasources.DataSource.sourceInfo(DataSource.scala:90)
at org.apache.spark.sql.execution.streaming.StreamingRelation$.apply(StreamingRelation.scala:30)
at org.apache.spark.sql.streaming.DataStreamReader.load(DataStreamReader.scala:150)
at com.example.KafkaConsumer.main(KafkaConsumer.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$runMain(SparkSubmit.scala:782)
at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180)
at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205)
at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119)
at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)
Caused by: java.lang.ClassNotFoundException: kafka.DefaultSource
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.apache.spark.sql.execution.datasources.DataSource$anonfun$22$anonfun$apply$14.apply(DataSource.scala:537)
at org.apache.spark.sql.execution.datasources.DataSource$anonfun$22$anonfun$apply$14.apply(DataSource.scala:537)
at scala.util.Try$.apply(Try.scala:192)
at org.apache.spark.sql.execution.datasources.DataSource$anonfun$22.apply(DataSource.scala:537)
at org.apache.spark.sql.execution.datasources.DataSource$anonfun$22.apply(DataSource.scala:537)
at scala.util.Try.orElse(Try.scala:84)
at …
Run Code Online (Sandbox Code Playgroud)

uberjar apache-spark apache-spark-sql spark-structured-streaming

10
推荐指数
2
解决办法
8348
查看次数

ShadowJar:没有为属性“mainClassName”指定值

在调整我的构建文件,我似乎 已经遇到了一个错误mainClassName

thufir@dur:~/NetBeansProjects/HelloSeleniumWorld$ 
thufir@dur:~/NetBeansProjects/HelloSeleniumWorld$ ./gradlew clean ShadowJar --stacktrace
> Task :shadowJar FAILED

FAILURE: Build failed with an exception.

* What went wrong:
A problem was found with the configuration of task ':shadowJar'.
> No value has been specified for property 'mainClassName'.

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskValidationException: A problem was found with the configuration …
Run Code Online (Sandbox Code Playgroud)

uberjar gradle shadowjar gradle-kotlin-dsl fatjar

10
推荐指数
2
解决办法
4440
查看次数

Maven 着色 jar 用作外部项目依赖项

我在我的项目中使用了 maven shade 插件来重新定位一个包下的所有依赖 jar 类,例如 org.shade.*

当我尝试在其他应用程序中使用该阴影 jar 作为 maven 依赖项时,它会拉取依赖项 jar。

我的期望是当 uber/shaded jar 作为 maven 依赖项包含时,它不应该拉任何其他依赖类 jar,因为这些类已经在 shaded jar 中重新打包。

uberjar maven-3 maven maven-shade-plugin

9
推荐指数
1
解决办法
5176
查看次数

如何使用maven和fatjar插件将一个SINGLE依赖项包含到jar中

我觉得这个问题有点愚蠢,但我无法弄清楚如何将SINGLE依赖(jdom.jar)添加到另一个jar中.

上下文:我们为我们的应用程序开发了一个简单的插件,这个插件有许多依赖性.我们使用fatjar将jdom.jar包含在其中.我正在尝试修复此插件中的错误,所以我决定同时"maven-ize".(我们刚刚切换到maven)这个插件加载到运行时,因此我们想要打包的唯一依赖项是jdom.jar.

问题:我发现有一个maven fatjar插件!不幸的是我找不到任何文档,这个maven插件将每个依赖项添加到输出jar中.经过多次尝试,我决定放弃这个fatjar插件并搜索另一个插件.我找到了一个罐子,阴影,但在快速阅读它们后,他们看起来像是添加了每一个依赖.

问题:将jdom.jar添加到我的插件jar中的简单方法是这样的:

-MyPlug-in.jar
|
|-src
 |-main
  |-java
   |-*.java
|-jdom.jar

另外我不想改变清单或输出jar文件名

非常感谢你的时间.

uberjar maven

8
推荐指数
1
解决办法
5044
查看次数

从leiningen的编译中排除某些clj名称空间

我有一个工作正常的项目lein run.现在我想用它将它编译成一个独立的jar lein uberjar.不过,也有我的一对夫妇的源文件的src/projectname/目录下名为如playground.cljstats.clj我使用的使用Emacs和REPL的尝试,但我不希望编译为最终项目.

有了类似的东西make,我会指定应该编译的所有文件.有了clojure/leiningen,似乎所有文件都是默认编译的 - 如何排除文件?我没有在leiningen文档中找到任何内容.

我目前正在使用:aot :all.这是改变某些东西的地方吗?再一次,我找不到关于此的详细文档.

更新:

到目前为止的建议没有奏效.然而,有用的是包括所有期望的命名空间,而不是排除那些不应编译的命名空间.例如:

(defproject myproject "version"
  ;; ...
  :profiles {:uberjar {:aot [myproject.data
                             myproject.db
                             myproject.util]}})
Run Code Online (Sandbox Code Playgroud)

clojure uberjar leiningen

7
推荐指数
1
解决办法
2058
查看次数

lein run vs lein trampoline run vs uberjar

有什么区别lein run,lein trampoline run并将cojure应用程序部署为uberjar?有任何性能差异吗?

如果我这样做lein run/ lein trampoline run我可以直接进入服务器并从git中取出我的更改,而无需重新启动应用程序,对于uberjar也是如此.对于uberjars,我需要构建和部署应用程序.

提前致谢.

clojure uberjar leiningen

7
推荐指数
1
解决办法
2031
查看次数

我们还需要制作一个胖罐来提交Spark 2.0.0中的工作吗?

在Spark 2.0.0的发行说明中,它说:

Spark 2.0不再需要胖程序集jar来进行生产部署.

  • 这是否意味着我们不再需要制作一个胖罐来提交工作?

  • 如果有,怎么样?因此,此处的文档不是最新的.

jar uberjar apache-spark

7
推荐指数
1
解决办法
2201
查看次数