2010-12-27 2 views
2

J'ai récemment reçu des commentaires sur les binaires de ma bibliothèque open source jOOQ qui n'étaient pas fournis avec les informations de débogage. C'était une bonne rétroaction. Je n'ai jamais remarqué cela, car je n'ai jamais débogué les binaires lors des tests d'intégration.Quels paramètres du compilateur javac attendez-vous par défaut lors de l'utilisation d'une bibliothèque open source?

Cet incident m'a amené à une question intéressante:

qui javac paramètres du compilateur et choisiriez-vous/attendre par défaut lors de l'utilisation d'une bibliothèque open source?

Note:

  • J'utilise fourmi de construire, donc s'il vous plaît se référer à la ant javac task API.
  • I connaissez comment les options fonctionnent. Pas besoin de m'expliquer. Je suis curieux de savoir quels sont à choisir.
  • La source est disponible pour mes utilisateurs, et le livrable peut facilement être reconstruit, ainsi l'utilisateur peut changer leurs arrangements s'ils ont besoin d'optimiser pour un cas spécial.
  • EDIT: J'apprécie tout particulièrement concrètes réponses référencement concrètes options. Je sais qu'un bon travail est attendu :-)
+0

L'option de débogage est -g sur la ligne de commande mais quelque chose comme debug = "true" dans ant. –

+0

Bonjour Peter. Ce n'est pas ma question. Je sais ** comment ** définir les options, mais je suis curieux de savoir ** quels ** choisir –

+0

J'avais l'impression que javac était à peu près toujours exécuté sans options spéciales. –

Répondre

1

Activez autant d'informations de débogage que vous le pouvez, ne vous cachez pas, et ayez un téléchargement source correspondant à votre binaire. Essentiellement, vous devriez donner les meilleures conditions possibles pour faire un pas à pas dans votre code en cas de problème. Un développeur peut avoir à identifier des conditions défaillantes pour éviter de déclencher du code ou similaire, et dans cette situation, vous avez besoin de toute l'aide que vous pouvez obtenir.

+0

Je suppose qu'il n'y a pas grand chose d'autre à dire, alors acceptons cela ... –

0

Eh bien, si l'un des utilisateurs de votre bibliothèque rencontre un problème, préférez-vous un rapport d'erreur avec une pile avec des numéros de ligne ou sans? Je sais lequel je préférerais.

J'ai utilisé beaucoup de librairies java, principalement open source, mais aussi quelques unes fermées. à propos des seules bibliothèques qui n'incluent pas d'informations de débogage sont les bibliothèques de sources fermées qui ont été exécutées via un obfuscator.

+0

OK, merci. Je peux voir l'option de débogage est très évidente. Qu'en est-il d'autres options? –

+1

Quelles autres options affectent réellement les classes générées? Autre que peut-être la version cible, je ne peux pas penser à tout autre paramètre pertinent en dehors de déboguer. En ce qui concerne la version cible, 1.5 est une bonne cible car elle inclut certaines des fonctionnalités les plus récentes, mais couvre un assez bon intervalle de temps. Il n'y a pas trop de bibliothèques fournissant des classes compatibles 1.4. – jtahlborn

+0

Je suppose que vous avez raison. Bien que j'aie pu inconsciemment utilisé certaines API 1.6, comme String.isEmpty() ou des trucs comme ça ... –

Questions connexes