我在Intellij中使用Scala,遇到了一个问题。我已经包含了Java标记,以防有Java经验的人也能回答我的问题。
在我正在处理的某个依赖项的.I 2/cache文件夹中,有两个jar文件。一个包含.class文件,另一个包含.scala源文件。我希望能够修改其中一个jar,将其放到lib文件夹中,然后使用包含更改的jar运行我的程序。
不过我有个问题。我可以用jar修改源文件夹中的文件,但是当我把它放到lib中并运行它时,就不会出现更改。我已经尝试过在我的build.sbt文件中注释这个依赖项,但是即使在我运行sbt之后,它似乎仍然在使用我的旧依赖项。
我的问题可分为以下几部分:
1)我是否可以将一个只包含.scala文件的jar文件放到lib文件夹中,并期望它能够运行?
2)要删除该依赖项,是否将build.sbt文件中的行注释掉,然后运行sbt更新?
3)让我们说,将jar文件作为依赖项运行的唯一方法是使用包含.class文件的jar文件。如果我没有任何其他项目文件,比如.class文件,那么如何使用.scala文件重新构建jar文件呢?我有源文件,但我不知道如何使用它来重新创建jar,而不知道Scala项目中通常附带的所有其他信息。
我只使用Intellij编辑我的文件,并使用sbt运行代码。
发布于 2019-08-04 05:46:05
1)我是否可以将一个只包含.scala文件的jar文件放到lib文件夹中,并期望它能够运行?
这是不可能的,因为jar文件应该包含类文件,scala文件将作为资源而不是源文件处理。
2)要删除该依赖项,是否将build.sbt文件中的行注释掉,然后运行sbt更新?
我会运行sbt clean,我还没有试过,但是如果实际选择了库,sbt "show unmanagedBase"应该会列出它的库。
3)让我们说,将jar文件作为依赖项运行的唯一方法是使用包含.class文件的jar文件。如果我没有任何其他项目文件,比如.class文件,那么如何使用.scala文件重新构建jar文件呢?我有源文件,但我不知道如何使用它来重新创建jar,而不知道Scala项目中通常附带的所有其他信息。
理想的方法是为该源代码找到完整的存储库,更新源代码并运行sbt publishLocal,如果不可能,另一种方法是重构build.sbt并继续添加库,直到库正确编译,希望它不会有依赖关系,或者只有几个依赖项。
https://stackoverflow.com/questions/57334927
复制相似问题