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

标签 java scala intellij-idea jar

我正在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并继续添加库,直到该库正确编译为止。它不会有依赖性,或者只有几个。

关于java - 如何修改包含在IntelliJ中的依赖项的JAR中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57334927/

相关文章:

java - 如何在 Java 中的多个线程之间共享资源?

java - 在不同版本的 Play Framework 下开发运行

java - Scala中重载构造函数中的逻辑

java - 为什么无法访问我的Web应用程序?

git - IntelliJ git 忽略模板

java - 如何在方法中使用通用参数以将参数类型限制为某些特定的Class类型?

java - Kurento媒体服务器可以播放某个时间的视频吗?

scala - 具有SortedMap和 “reversed” SortedMap的Scala类

scala - 在 Scalaz 中仅累积验证错误

在 Intellij 中构建工件后,Java getResource 找不到文件