簡體   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