5

Javaプロジェクトで不要なJARSを見つけるにはどうすればよいですか。たくさんのJARが含まれている多くのJavaプロジェクトを引き継いでいますが、それらは必要ないと感じています。プロジェクトに必要なJARと不要なJARを見つけるための簡単なコツを知っている人がいれば、教えてください。

以下は、MySQLとHibernateを使用したSpring Web FlowプロジェクトのJARリストです。すべてのJARは必要ありませんが、誰かがいくつかのトリックを教えてくれますか?

activation-1.1.jar
antlr-2.7.6.jar
aopalliance-1.0.jar
asm-3.1.jar
asm-attrs-1.5.3.jar
aspectjrt-1.6.8.jar
aspectjweaver-1.6.8.jar
c3p0-0.9.2-pre4.jar
cas-client-core-3.2.1.jar
cglib-2.2.jar
commons-beanutils-1.8.0.jar
commons-codec-1.4.jar
commons-collections-3.1.jar
commons-dbcp.jar
commons-digester-1.8.1.jar
commons-email-1.0.jar
commons-fileupload-1.1.1.jar
commons-io-1.1.jar
commons-lang-2.5.jar
commons-logging-1.1.1.jar
commons-pool.jar
dom4j-1.6.1.jar
dumbster-1.6.jar
ehcache-1.2.3.jar
files.txt
hibernate-annotations-3.5.0-Final.jar
hibernate-commons-annotations-3.2.0.Final.jar
hibernate-core-3.5.0-Final.jar
hibernate-entitymanager-3.5.0-Final.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
hibernate-search-3.0.0.GA.jar
hibernate-validator-4.0.2.GA.jar
hsqldb-1.8.0.10.jar
httpclient-4.1.2.jar
httpclient-cache-4.1.2.jar
httpcore-4.1.2.jar
httpmime-4.1.2.jar
icu4j-2.6.1.jar
jackson-core-asl-1.5.3.jar
jackson-mapper-asl-1.5.3.jar
javassist-3.9.0.GA.jar
jaxb-api-2.1.jar
jaxb-impl-2.1.3.jar
jaxen-1.1.1.jar
jcl-over-slf4j-1.5.10.jar
jdom-1.0.jar
joda-time-1.6.jar
joda-time-jsptags-1.0.2.jar
jstl-1.2.jar
jta-1.1.jar
log4j-1.2.14.jar
log4j-1.2.15.jar
lucene-core-2.3.2.jar
lucene-highlighter-2.0.0.jar
mail-1.4.jar
mailapi.jar
mail.jar
mchange-commons-java-0.2.2.jar
mysql-connector-java-5.0.5.jar
org.springframework.aop-3.1.1.RELEASE.jar
org.springframework.asm-3.1.1.RELEASE.jar
org.springframework.aspects-3.1.1.RELEASE.jar
org.springframework.beans-3.1.1.RELEASE.jar
org.springframework.binding-2.3.1.RELEASE.jar
org.springframework.context-3.1.1.RELEASE.jar
org.springframework.context.support-3.1.1.RELEASE.jar
org.springframework.core-3.1.1.RELEASE.jar
org.springframework.expression-3.1.1.RELEASE.jar
org.springframework.faces-2.3.1.RELEASE.jar
org.springframework.instrument-3.1.1.RELEASE.jar
org.springframework.instrument.tomcat-3.1.1.RELEASE.jar
org.springframework.jdbc-3.1.1.RELEASE.jar
org.springframework.jms-3.1.1.RELEASE.jar
org.springframework.js-2.3.1.RELEASE.jar
org.springframework.js.resources-2.3.1.RELEASE.jar
org.springframework.orm-3.1.1.RELEASE.jar
org.springframework.oxm-3.1.1.RELEASE.jar
org.springframework.test-3.1.1.RELEASE.jar
org.springframework.transaction-3.1.1.RELEASE.jar
org.springframework.web-3.1.1.RELEASE.jar
org.springframework.webflow-2.3.1.RELEASE.jar
org.springframework.web.portlet-3.1.1.RELEASE.jar
org.springframework.web.servlet-3.1.1.RELEASE.jar
org.springframework.web.struts-3.1.1.RELEASE.jar
persistence-api-1.0.jar
quartz-1.5.2.jar
slf4j-api-1.5.10.jar
slf4j-log4j12-1.5.10.jar
smtp.jar
spring-ldap-1.3.1.RELEASE-all.jar
spring-security-cas-3.1.0.RELEASE.jar
spring-security-config-3.1.0.RELEASE.jar
spring-security-core-3.1.0.RELEASE.jar
spring-security-crypto-3.1.0.RELEASE.jar
spring-security-ldap-3.1.0.RELEASE.jar
spring-security-openid-3.1.0.RELEASE.jar
spring-security-remoting-3.1.0.RELEASE.jar
spring-security-taglibs-3.1.0.RELEASE.jar
spring-security-web-3.1.0.RELEASE.jar
spring-tx-3.0.5.RELEASE.jar
stax-api-1.0-2.jar
tiles-api-2.1.3.jar
tiles-core-2.1.3.jar
tiles-jsp-2.1.3.jar
tiles-servlet-2.1.3.jar
urlrewritefilter-3.1.0.jar
validation-api-1.0.0.GA.jar
xalan-2.6.0.jar
xml-apis-1.3.02.jar
xmlParserAPIs-2.6.2.jar
xom-1.0.jar
4

3 に答える 3

5

最適な方法は、依存関係を自動的に処理するMavenのようなプロジェクト マネージャーを使用することです。これはおそらく最良の長期的な解決策になるでしょう

強引な方法は、すべての jar ファイルを別のフォルダーに移動し、プロジェクトのコンパイルを試行し続けることです。クラスが見つからないというエラーが多数発生するため、どの jar にクラスが含まれているかを特定し (ここでは Google が役立つ場合があります)、それを追加してから、再度コンパイルします。

思いつく方法はこの2つだけ

于 2012-09-11T17:39:21.610 に答える
1

アプリケーションでJBoss Tattletaleを実行してみてください。これにより、アプリケーションの依存関係に関するレポートが得られます。これには、未使用の jar、バージョン番号が異なる重複した jar などが含まれますが、これらに限定されません。

于 2012-09-11T21:11:54.860 に答える
0

Eclipse IDE を使用している場合は、クラスパス ヘルパーをダウンロードして使用することをお勧め
ます 。

Class.forName() を使用してクラスをロードする場合、これは struts、WAR web.xml ファイル、EJB 記述子などを含む多くのフレームワークで一般的です。インターフェイス定数 (静的最終定数) はインラインでコンパイルされます。つまり、実行時の定数にはコンパイル時の依存関係がありますが、宣言するインターフェイス/クラスへの参照はありません。

アップデート:

私は Eclipse Helios Service Release 2 を使用していますが、問題なく動作します。確認する必要があることが 1 つあります。パッケージ エクスプローラー(通常のプロジェクト エクスプローラーではありません) を使用してプロジェクトを探索し、[ウィンドウ] -> [ビューの表示] -> [その他] -> [クラスパス ヘルパー] で [クラスパス ビュー] を選択する必要があります。

于 2012-09-11T18:03:48.790 に答える