我正在使用一个用gradle构建的开源项目.我想生成一个(项目)-sources.jar文件,我可以将其加载到我的IDE(IntelliJ IDEA)并通过项目进行调试.如果我可以生成它,我知道如何加载文件.
我查看了项目的可用gradle任务,但没有一个生成源jar文件.
为此项目生成源jar文件的最简单方法是什么?
将源添加到包含已编译类文件的jar文件中也可以.
真的...已经讨论了很多.
然而,有很多歧义和一些答案提供...包括在jar/executor /驱动程序配置或选项中复制jar引用.
对于每个选项,应澄清含糊不清,不清楚和/或省略的细节:
--jars
SparkContext.addJar(...)
方法SparkContext.addFile(...)
方法 --conf spark.driver.extraClassPath=...
要么 --driver-class-path ...
--conf spark.driver.extraLibraryPath=...
, 要么 --driver-library-path ...
--conf spark.executor.extraClassPath=...
--conf spark.executor.extraLibraryPath=...
我知道在哪里可以找到主要的spark文档,特别是关于如何提交,可用的选项以及JavaDoc.然而,这对我来说仍然有一些漏洞,尽管它也有部分回答.
我希望它不是那么复杂,有人可以给我一个清晰简洁的答案.
如果我从文档中猜测,似乎--jars
和SparkContext
addJar
,addFile
方法是自动分发文件的方法,而其他选项只是修改ClassPath.
假设为简单起见,我可以安全地使用3个主要选项同时添加其他应用程序jar文件:
spark-submit --jar additional1.jar,additional2.jar \
--driver-library-path additional1.jar:additional2.jar \
--conf spark.executor.extraLibraryPath=additional1.jar:additional2.jar \
--class MyClass main-application.jar
Run Code Online (Sandbox Code Playgroud)
找到一篇关于另一篇文章答案的好文章.然而没有什么新学到的 海报确实很好地评论了本地驱动程序(纱线客户端)和远程驱动程序(纱线群集)之间的区别.记住这一点非常重要.
试图运行这个程序.我认为要设置我需要运行apt的所有Web服务.(虽然使用javac我遇到了同样的问题).我认为我得到的是编译错误.(如下图所示).
我想我需要做的是在我的类路径中包含这个jar:jsr181-api.jar (source).有没有一个简单的临时方法(在solaris上)?我不想将它添加到我的bash_rc文件中(它永远存在).我也知道有一些方法可以使用清单文本文件,但这似乎很复杂,所以我还没有调查它.我可以这样做:
javac HelloImp <listOfJars>
Run Code Online (Sandbox Code Playgroud)
要么
ant HelloImp <listOfJars>
Run Code Online (Sandbox Code Playgroud)
码:
package server;
import javax.jws.WebService;
@WebService
public class HelloImpl {
/**
* @param name
* @return Say hello to the person.
*/
public String sayHello(String name) {
return "Hello, " + name + "!";
}
}
Run Code Online (Sandbox Code Playgroud)
编译错误:
HelloImpl.java:3: package javax.jws does not exist
import javax.jws.WebService;
^
HelloImpl.java:5: cannot find symbol
symbol: class WebService
@WebService
^
2 errors
Run Code Online (Sandbox Code Playgroud)
更新:酷包裹但仍然不能正常工作.我创建了一个新问题,以保持良好和有条理:
这是关于在Eclipse中向Android项目添加第三方库(JAR)的两部分问题.
问题的第一部分是,当我尝试将第三方JAR(库)添加到我的Android项目时,我首先得到的问题是
解析XML时出错:未绑定前缀
因为我正在尝试使用该JAR中的一个类(并且需要以某种方式定义的前缀).这是怎么回事?
其次,(在解决之后 - 下面给出了答案),我的应用程序无法在Android上运行,我通过调试器(LogCat)发现我尝试使用的类不存在.
引起:java.lang.ClassNotFoundException:com.github.droidfu.widgets.WebImageView ...
为什么,当我在Eclipse中没有编译或链接器错误时,它是否在模拟器上出现此问题?
这两个问题是修辞性的,我将在下面自己回答这些问题.这个论坛中的其他帖子可以解决问题,其他地方也有讨论,但我觉得我可以更明确地帮助下一个人来.
我正在尝试创建2个版本的Android应用程序(免费/付费).我有一个Android库,其中包含两者共有的文件.我创建了一个新的Android项目,并尝试使用该库,但得到以下错误:
Found 2 versions of android-support-v4.jar in the dependency list,
but not all the versions are identical (check is based on SHA-1 only at this time).
All versions of the libraries must be the same at this time.
Versions found are:
Path: /Users/Zaheer/Developer/App Free/libs/android-support-v4.jar
Length: 349252
SHA-1: 612846c9857077a039b533718f72db3bc041d389
Path: /Users/Zaheer/Developer/App Library/libs/android-support-v4.jar
Length: 337562
SHA-1: 27c24d26e4c5d57976e6926367985548678e913c
Run Code Online (Sandbox Code Playgroud)
关于如何解决这个问题的任何想法?我一直在玩构建路径,但没有成功.
到目前为止,我通过Eclipse"Export ..."功能创建了可运行的JAR文件,但现在我切换到IntelliJ IDEA和Gradle进行构建自动化.
这里的一些文章提出了"应用程序"插件,但这并不完全导致我期望的结果(只是一个JAR,没有启动脚本或类似的东西).
如何通过Eclipse"Export ..."对话框实现相同的结果?
我阅读了Sun for JAR文件的Java教程,但我仍然无法找到解决问题的方法.我需要使用一个名为jtwitter.jar的jar文件中的类,我下载了该文件,然后尝试执行它(我昨天发现.jar文件可以通过双击来执行)并且Vista给了我一个错误说"无法从[path] /jtwitter.jar加载Main-Class Manifest属性.
编码.jar文件的人希望我导入它,但是我在哪里存储.jar文件以在我的代码中导入它?我尝试将.jar文件和我的.java文件放在同一目录中,但是没有用.
我正在努力的文件是:http://www.winterwell.com/software/jtwitter.php
我正在使用JCreator LE.
我正在尝试在Eclipse中使用Hibernate.我正在创建一个新的简单项目,我也通过CVS下载了一个同事项目.两者都不起作用,而在我的同事的Eclipse上.问题是,对于Hibernate类的每次导入,Eclipse都说:
The import org.hibernate cannot be resolved
Run Code Online (Sandbox Code Playgroud)
但是所有Hibernate jar都在构建路径中,即:
antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
Run Code Online (Sandbox Code Playgroud) 我目前正在使用jar-with-dependencies程序集来创建这样一个jar.但是,我的罐子的名字有点长.
由于这个jar正被AS400上的RPG程序使用,我想缩短它以使这些开发人员的生活更轻松.但是,除了手工之外,我还没有找到一种方法来重命名罐子project-name-version-classifier-jar-with-dependencies.jar
.我喜欢类似的东西project-name-version-classifier-full.jar
反正有没有基本上复制jar-with-dependencies程序集描述符并将其调用为满?
另外,我想继续让jar没有存储在存储库中的类路径.
我需要两个文物.我的分类器的jar包含构建所在的区域.具有所有依赖关系的jar也包括该区域.
project-name-version-region-full.jar
并project-name-version-region.jar
应存储在存储库中.在第一个例子中,分类器是区域满的,在第二个区域.后者正在发挥作用.
我一直在阅读一些关于Gradle作为Android应用程序的标准构建系统的新采用的文章.好吧,来自标准的Java开发,我通常依赖于jar文件来构建我的项目.然而似乎安卓也有AAR包,这是相当于DLL在Windows操作系统文件,提到这里:
首先,您必须意识到Android平台不允许应用程序级别的"共享库".在"传统"编程语言平台,C,C++,Java中,您可以命名它,我们有这种共享运行时库的机制.(例如,Windows上的DLL,Unix上的DSO,JVM上的Jar等).但是,在Android上,除非您是Google或手机制造商,否则您无法做到这一点(请参阅下面的脚注1).作为应用程序开发人员,这可能是一个基本限制.在构建时和运行时"共享"或"重用"代码是软件工程实践中非常重要的一部分.由于上述限制,这在Android上相当困难(并非不可能,更难).
但是,我对这个概念有些怀疑.我的意思是,开发人员何时应该对其应用程序中包含aar依赖项感兴趣?这种依赖关系是否收紧到SDK最低版本?
例如,在一个项目中,我访问一个COM端口,我使用NDK预编译 .so库.如果我想分享这个实用程序,我是否必须创建一个aar?