Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何导入.jar的所有依赖项?_Java_Android_Apache_Maven - Fatal编程技术网

Java 如何导入.jar的所有依赖项?

Java 如何导入.jar的所有依赖项?,java,android,apache,maven,Java,Android,Apache,Maven,我正在移植到Android 到目前为止,我已经导入了存储库并使用maven,在我的build.gradlef中添加了: compile 'org.apache.flink:flink-streaming-java_2.10:1.0.0-hadoop1' compile 'org.apache.flink:flink-clients_2.10:1.0.0-hadoop1' 现在我必须修改其中一个,特别是Flink/Flink runtime/src/main/java/org/apache/Fl

我正在移植到Android

到目前为止,我已经导入了存储库并使用maven,在我的
build.gradle
f中添加了:

compile 'org.apache.flink:flink-streaming-java_2.10:1.0.0-hadoop1'
compile 'org.apache.flink:flink-clients_2.10:1.0.0-hadoop1'
现在我必须修改其中一个,特别是
Flink/Flink runtime/src/main/java/org/apache/Flink/runtime/instance/InstanceManager.java

那你建议我怎么做?我可以修改并包含Maven生成的
.jar
,但这是我应该避免的“危险”操作(Maven的存储库版本可能不同于src代码版本),然后我应该手动导入flink runtime依赖的所有依赖项,对吗

例如,由于
flink runtime
依赖于
Scopt
,因此我必须向
build.gradle
文件中添加以下指令:

编译'com.github.scopt:scopt_2.10:3.4.0'

对吧??这是一种痛苦,因为flink runtime依赖于太多其他库


有更简单/更安全/更快的解决方案吗?

您的未来计划是什么?假设将来,Flink更新版本,你要么重新应用你的mod(s),要么继续使用旧版本。修改库源代码并不危险,只是单调乏味,因为现在你必须使修改保持最新。克隆flink源代码,更改groupID和版本,然后进行更改。然后,您只需在新版本的flink中添加一个依赖项,而不是apache的版本。也就是说,我通常建议不惜一切代价避免像那样修改库,除非没有其他方法。谢谢你的回答。我知道你的意思,但是把这么大的项目移植到Android上不需要任何修改是不可能的。所以我同意你关于保持库更新的缺点的看法,但我认为没有其他方法。