Comment puis-je savoir ce que les fichiers jar sont effectivement utilisés lors de la compilation d'un projet java
Je suis en train de passer un très grand classpath pour javac pour compiler un projet en java.
Je sais qu'un certain nombre de ces fichiers jar ne sont pas nécessaires.
Est-il un moyen simple de trouver les fichiers qui ne sont pas nécessaires?
Vous y trouverez pas un qui couvre également les dépendances d'exécution.
Vous aurez même pas à trouver une simple pour les autres dépendances. Bienvenue au classpath de l'enfer 😉
Pour l'enregistrement: La Classe de la Dépendance de l'Analyseur donne la sortie plus détaillée, avec une belle interface pour examiner les résultats. Toutefois, il est assez lent et la mémoire de la faim. Le Pot de l'Analyseur semble plus facile à automatiser dans le cadre d'un travail et produit beaucoup de sortie utile. Il est également assez rapide.
Vous aurez même pas à trouver une simple pour les autres dépendances. Bienvenue au classpath de l'enfer 😉
Pour l'enregistrement: La Classe de la Dépendance de l'Analyseur donne la sortie plus détaillée, avec une belle interface pour examiner les résultats. Toutefois, il est assez lent et la mémoire de la faim. Le Pot de l'Analyseur semble plus facile à automatiser dans le cadre d'un travail et produit beaucoup de sortie utile. Il est également assez rapide.
OriginalL'auteur tomdee | 2009-11-19
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin de la Classe De Dépendance De L'Analyseur outil. Pour citer l'introduction:
Vrai, il ne prends pas les dépendances d'exécution - mais à court de course exhaustive 100% test de couverture par la suite vous ne pouvez jamais être sûr que vous avez pris toutes les dépendances d'exécution.
Si vous vous attendez à des dépendances d'exécution, vous devez utiliser l'ADC comme un premier passage, puis faire des tests exhaustifs de la résultante de l'application pour s'assurer qu'il n'y a pas de fichiers jar qui n'ont été référencés par les dépendances d'exécution.
Il vous dira que les récipients de votre application dépend, le reste sont ceux qui sont inutiles.
Est - il Correct, vous pouvez comparer les utilisé des bocaux avec le classpath, mais c'est risqué - d'une bibliothèque ne peut pas avoir été utilisé au moment de l'analyse de la trajectoire de mais nécessaires ainsi..
Que ne couvre pas les dépendances d'exécution (c'est à dire
Class.forName("com.example.Clazz")
.Aussi n'aide pas à la réflexion, le code qui utilise ServiceLocator, etc. Si vous avez des tests, je venais de commencer à enlever des trucs manuellement jusqu'à ce que les tests de saut. Si vous n'avez pas de tests, puis Java paresseux classe de chargement va rendre les choses difficiles pour vous.
OriginalL'auteur sanity
Je suppose que "supprimer un par un et vérifier si l'application encore compile et fonctionne" n'est pas la réponse attendue 🙂
(EDIT: Alors que l'approche proposée ci-dessus peut être un peu automatisées, il reste d'une certaine manière pénible et il doit y avoir une alternative, au moins pour le temps de compilation des dépendances. Après quelques recherches sur google, j'ai trouvé Pot De L'Analyseur qui semble être un bon outil pour ce travail, comme l'explique cette post de blog:
Il semble assez facile à utiliser: télécharger, décompresser et exécuter l'outil sur un répertoire contenant tous les pots. Ou utiliser tâche Ant.)
Vous pouvez toujours mettre en œuvre certaines de script.
Toutefois, ce n'est plus probablement la meilleure façon, si vous voulez parcourir les dépendances d'exécution.
Grève - 100% candidat accepté de répondre, comme si ils ont rapidement développé quelque chose pour résoudre tomdee du problème 😉
OriginalL'auteur Pascal Thivent
Vous avez également loosejar.jar qui vous permet de trouver le vrai pot de dépendances de votre projet à exécution !
OriginalL'auteur Anthony O.
La dernière version d'eclipse va vous en avertir inutilisés importations dans votre code source
cela a été une Éclipse fonction pour un temps assez long
OriginalL'auteur JERiv
Le compilateur a un
-verbose
option, et il est assez verbeux. Il informe de chaque classe qui est chargé et où il est chargé de!Alors que ce n'est pas tout à fait conviviale et il ne fournit pas d'analyse de haut niveau, je le trouve très utile pour le débogage classpath conflits. Cela vous indique les pots utilisés (avec l'aide de
grep
), pas ceux qui ne sont pas utilisés.OriginalL'auteur notnoop
Vérifier Classpath Helper
OriginalL'auteur JuanZe