繁体   English   中英

如何修改包含在IntelliJ中的依赖项的JAR中的文件

[英]How to modify a file contained in a JAR that is a dependency in IntelliJ

我正在Intellij-Idea中使用Scala,遇到了问题。 我已包含Java标记,以防具有Java经验的人也可以回答我的问题。

在我正在使用的特定依赖项的.ivy2 / cache文件夹中,有两个jar文件。 一个包含.class文件,另一个包含.scala源文件。 我希望能够修改其中一个jar,将其放在我的lib文件夹中,然后使用包含我的更改的jar运行我的程序。

我有一个问题。 我可以使用jar uvf修改源文件夹中的文件,但是当我将其放到lib中并运行它时,更改不会显示出来。 我尝试注释掉build.sbt文件中的依赖项,但即使运行sbt update后,它似乎仍在使用旧的依赖项。

我的问题可以分为几个部分:

1)我可以只将仅包含.scala文件的jar文件拖放到lib文件夹中,并希望它运行吗?

2)要删除依赖关系,是否在build.sbt文件中注释掉该行,然后运行sbt update就足够了?

3)让我们说,将jar文件作为依赖项运行的唯一方法是使用包含.class文件的jar文件。 如果我没有其他任何项目文件(例如build.sbt文件),如何使用.scala文件用.class文件重建jar? 我有源文件,但是我不确定如何在没有Scala项目通常打包的所有其他信息的情况下使用它来重新创建jar。

我仅使用Intellij编辑我的文件,并使用sbt运行代码。

1)我可以只将仅包含.scala文件的jar文件拖放到lib文件夹中,并希望它运行吗?

这是不可能的,因为jar文件应包含类文件,scala文件将被视为资源而不是源文件。

2)要删除依赖关系,是否在build.sbt文件中注释掉该行,然后运行sbt update就足够了?

我将运行sbt clean ,但我没有尝试过,但是sbt "show unmanagedBase"应该列出您的库(如果实际上已选择)。

3)让我们说,将jar文件作为依赖项运行的唯一方法是使用包含.class文件的jar文件。 如果我没有其他任何项目文件(例如build.sbt文件),如何使用.scala文件用.class文件重建jar? 我有源文件,但是我不确定如何在没有Scala项目通常打包的所有其他信息的情况下使用它来重新创建jar。

理想的方法是找到该源代码的完整存储库,更新源代码并运行sbt publishLocal ,如果不可能的话,另一种方法是重建build.sbt并继续添加库,直到库正确编译为止。将没有依赖性,或者只有少数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM