小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

java查找哪些jar與哪些java源文件一起使用

 印度阿三17 2019-07-09

我是我公司的新配置經理,我正在啟動一個項目來清理我們的大部分構建過程.

我們已經在一個Subversion項目中收集了大量的罐子.有些人將這些罐子復制到他們的項目中.其他人在他們的項目中將SVN:External放到了這個目錄中.其他人在這些罐子里有一種復雜的復制方式.這些是我們想要使用的唯一的罐子.

我要搬到Ivy,也許是Maven.我已經設置了一個Maven存儲庫,并且已經識別出這些jar的GroupId,ArtifactId和Version,并且已經記錄了如何通過Ivy和Maven配置訪問所需的那些.

我想查看所有項目的源文件,查找所有import語句,并將這些導入與這些jar包含的所有類進行比較.

我想找到一組給定來源直接調用的所有罐子.例如,如果jar包含:

import org.apache.commons.beanutils.*

我知道它需要commons-beanutils.jar(版本1.6).我也知道它需要commons-logging.jar,但我會讓Maven和Ivy處理這個問題.我只是想告訴開發(fā)人員他們創(chuàng)建pom.xml或ivy.xml時,他們需要在他們的pom.xml或ivy.xml文件中包含common-beanutils#common-beansutil#1.6.

我知道這不是一個完整的清單.我知道運行時需要jar,但不能編譯.我也知道有些類可以使用多個罐子.我現(xiàn)在也開發(fā)人員可以這樣做:

import org.apache.commons.*;

這將與幾十個罐子相匹配,什么都不告訴我. (也許有辦法弄清楚Java源文件中實際使用了哪些類).

我可以寫一個可能會做到這一點的Python或Perl腳本,但我希望已經有一些東西可以節(jié)省我?guī)讉€小時的工作.我知道JBoss的TattleTale,但文檔似乎說它只適用于jar并顯示jar之間的依賴關系等等.我對此并不感興趣.我只是想知道我們的來源正在調用什么罐子,讓Ivy和Maven處理更深層的依賴關系.

有這樣的工具嗎?

附錄

只是為了更具體.這是一個古老的項目.事實上,有50個左右的項目.我們知道一個特定的項目需要運行20個罐子,像TattleTail這樣的工具可以通過并向您展示整個數據分析.

但是,讓我們從開發(fā)人員的角度來看待它.我有一個問題,我找到了一個可以解決我的問題的開源項目.我閱讀了文檔,編寫了我的代碼并導入了我需要的類.我知道包含這些類的開源項目的jar,這就是我所知道的.

我想要做的是回到原始開發(fā)人員的心態(tài):我在這個項目中使用了這些類,我需要這5個罐子.那些5個罐子可能還需要另外15個罐子,這是Ivy / Maven現(xiàn)在要處理的東西.我們知道該計劃需要的20個罐子.我只想要開發(fā)人員最初在他們的代碼中引用的5.

這是為了幫助開發(fā)人員編寫他們的pom.xml或ivy.xml.我不希望他們將所有20個jar放在那個pom.xml或ivy.xml文件中 – 只需要他們需要的五個.

這只是一個起點.他們可能導入了com.foo.bar.bar.foo,該類位于foo-all.jar,foo-client.jar和bar-talk.com中.開發(fā)人員必須決定他們的項目需要哪一個.

這是我們編程中的一個巨大的范式轉換,但我們正在失去對jar和版本的跟蹤,并確保所有這些項目可以相互通信.使用Ivy / Maven將大大簡化這一混亂.

解決方法:

Tattletale最終給了我第一級依賴項,這是構建我的ivy.xml或pom.xml文件所需要的.它偶爾會錯過一兩個,但除此之外它的效果還不錯.

來源:https://www./content-1-311501.html

    本站是提供個人知識管理的網絡存儲空間,所有內容均由用戶發(fā)布,不代表本站觀點。請注意甄別內容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權內容,請點擊一鍵舉報。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多