Java 如何导入.jar的所有依赖项?
我正在移植到Android 到目前为止,我已经导入了存储库并使用maven,在我的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
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上不需要任何修改是不可能的。所以我同意你关于保持库更新的缺点的看法,但我认为没有其他方法。