Étant donné que j'ai une liste de dépendances disponibles sous forme de bits dans des fichiers externes. Ceux-ci seront regroupées dans une liste comme:Code Java pour convertir une liste de dépendances dans un ordre de construction?
module1
module2 dependsOn module1
module3 dependsOn module1
module4 dependsOn module3
Je voudrais créer un ordre de construction où chaque étape de construction se trouve sur une ligne, et chaque ligne contient une liste d'un ou plusieurs modules qui peuvent être compilés à en même temps, et qui ne dépendent que des modules compilés précédemment.
Ainsi, pour l'ensemble de données ci-dessus, créez une liste comme:
module1
module2,module3
module4
Maintenant, cela est fondamentalement juste un problème de créer un graphe orienté, et de l'analyser. Maintenant, j'utilise Ant, et aimerais beaucoup utiliser quelque chose dans le commerce ... quel est le minimum de code personnalisé dont j'ai besoin pour créer une telle liste de construction à partir de l'entrée donnée? Je ne veux pas écrire tout le code moi-même (que je sais faire), mais chercher des bibliothèques pour m'aider ici ...
BTW, ces modules sont en fait des modules personnalisés, donc Maven ne fonctionnera pas. De plus, la liste des modules est créée à la volée à partir du code source Java, et je ne peux pas le coder en dur dans le fichier de construction. Dessinez un arbre de vos dépendances et observez les niveaux.
est-ce que les dépendances représentées dans un ant-script avec des cibles différentes? – aioobe
Qu'en est-il des commentaires sournois sur le lolz que les dépendances circulaires sont? J'adore sûrement que mes classes n'aient pas de dépendances circulaires entre elles (et DSM d'IntelliJ IDEA aide grandement ici [Graph de matrice de structure de dépendance]). Mais les dépendances circulaires entre les modules? Jamais même cauchemardé à ce sujet :) – SyntaxT3rr0r
@aioobe: les dépendances sont définies dans des fichiers externes. –