J'ai une question générale sur la manière de gérer vos dépendances de jar de compilation et de déploiement. Je dispose généralement les répertoires de développement comme suit pour une bibliothèque/application simple.Dépendances Java lors du développement et du déploiement
Calculator
src
test
build
lib
…
Il y a plusieurs façons de le faire, mais c'est ma disposition typique pour les projets génériques. Ma question tourne autour du répertoire lib. Je place généralement des jars dont mon projet dépend dans le répertoire lib (log4j, etc.) Donc, au moment de la compilation, je peux définir mes différents chemins comme lib \ log4j.jar ou quelque chose comme ça. Maintenant, lorsque nous créons un paquet distribuable, j'ai tendance à refléter cette mise en page.
dist
Calculator.jar
lib
log4j.jar
addition.jar
subtraction.jar
Cela me permet soit d'installer un script qui définit mon chemin de classe par rapport à l'endroit où le pot principal, ou je peux configurer le classpath dans le manifeste pour le pot principal (Calculator.jar dans ce cas) Cela peut ou peut-être pas la meilleure façon de le faire, mais cela a fonctionné pour moi et semble être la façon acceptée de traiter les dépendances par d'autres développeurs dont j'ai parlé à ce sujet.
Ma question vient quand je veux créer un nouveau projet qui utilise un autre projet que j'ai présenté de cette façon. Donc, disons que je veux créer un nouveau projet de calculatrice qui utilise le projet Calculatrice à partir de l'exemple ci-dessus. Si je suis la même mise en page, je voudrais obtenir quelque chose comme ce qui suit:
dist
ScentificCalculator.jar
lib
Calculator.jar
lib
Log4j.jar
addition.jar
subtraction.jar
Bien sûr, cela pourrait sortir de la main le plus profond de votre arbre de dépendance est:
SuperWhizBangCalculator.jar
lib
ScientificCalculator.jar
lib
Calculator.jar
lib
log4j.jar
addition.jar
subtraction.jar
Une autre option serait de aplatir l'arbre:
SuperWhizBangCalculator
lib
ScientificCalculator.jar
Calculator.jar
log4J.jar
addition.jar
subtraction.jar
Mais quelque chose ne semble pas juste à ce sujet. Vous perdez la structure qui vous indique quelles bibliothèques vont avec le composant dont vous dépendez. Je me demandais donc s'il existait une façon standard de faire cela, étant entendu qu'il n'y a jamais de taille unique.
Merci pour le temps ...
J'ai déjà utilisé maven dans le passé. J'aurais besoin de configurer mon référentiel interne car mon entreprise n'aime pas tirer des logiciels de l'extérieur des murs sans passer par un processus de niveau –
Je recommande toujours de créer un dépôt interne pour tout autre projet que le plus trivial. – SteveD