Je reformule cette question pour la rendre un peu plus directe et facile à comprendre, j'espère.CPD/PMD entre les projets?
J'ai environ 30 composants (internes) qui vont dans une seule application Web. Cela signifie 30 projets différents avec leur propre POM séparé. J'utilise beaucoup l'héritage dans mes POMs, donc une des choses qu'ils héritent est une configuration PMD/CPD pour empêcher la duplication de code.
Même si CPD/PMD est en cours d'exécution, il ne détecte que du code en double dans le même projet. Je voudrais qu'il détecte dans l'un de mes projets s'il y a du code partagé entre les projets qui peuvent être refactorisés. De plus, je cherchais quelque chose qui pourrait (en utilisant le même concept/motif) vérifier qu'aucun code n'est partagé entre d'autres dépendances open source.
Ce serait CPD/PMD, sauf qu'il fonctionnerait sur les jars sources. Cette tâche consomme une grande quantité de mémoire si vous analysez tous les projets et leurs dépendances pour la duplication. En ce moment, je voudrais juste appliquer cela aux projets internes. Si cela fonctionne, il serait relativement facile de le faire évoluer.
Walter
pouvez-vous clarifier la question? – TofuBeer
Vous voulez un détecteur de code en double. Sûrement PMD est votre bête et vous avez terminé. Il semble que vous souhaitiez désosser un fichier WAR pour comparer son code source (comment vous allez traduire le bytecode pour ressembler à la source d'origine - cela semble inutile, irréalisable et tout simplement inutile) avec un autre code source, ou simplement comparer code d'octet avec votre bytecode. Pourquoi ne pas simplement comparer le code source que vous avez? – martinr
De plus, il peut y avoir des problèmes juridiques avec la tentative de reverse engineering du code dans certains cas. – martinr