web-dev-qa-db-fra.com

Construire ou compiler (Java)

En pensant que la réponse à cette question est assez évidente, mais la voici:

Quand je travaille sur un petit projet scolaire (en Java), je compiler le.

Sur ma coopérative, nous utilisons ant build notre projet.

Je pense que la compilation est un sous-ensemble de la construction. Est-ce correct? Quelle est la difference entre building et compiling?

Connexes:
Quelle est la différence entre compiler et construire?

121
sixtyfootersdude

Le "Build" est un processus qui couvre toutes les étapes nécessaires pour créer un "livrable" de votre logiciel. Dans le monde Java, cela inclut généralement:

  1. Générer des sources (parfois).
  2. Compiler les sources.
  3. Compilation des sources de test.
  4. Exécution de tests (tests unitaires, tests d'intégration, etc.).
  5. Emballage (dans un pot, une guerre, un pot, une oreille).
  6. Exécution de contrôles d'intégrité (analyseurs statiques tels que Checkstyle, Findbugs, PMD, couverture de test, etc.).
  7. Générer des rapports.

Comme vous pouvez le constater, la compilation n’est qu’une (petite) partie de la construction (et la meilleure pratique consiste à automatiser entièrement toutes les étapes à l’aide d’outils comme Maven ou Ant et à exécuter la construction en continu, appelée Continuous Intégration ).

208
Pascal Thivent

Certaines des réponses que je vois ici sont hors contexte et ont plus de sens s'il s'agissait d'une question C/C++.

Version courte:

  • "Compiler" est en train de transformer des fichiers .Java en fichiers .class
  • "Bâtiment" est un terme générique qui inclut la compilation et d’autres tâches.

"Bâtiment" est un terme générique décrit le processus global qui inclut la compilation. Par exemple, le processus de construction peut inclure des outils générant des fichiers de code ou de documentation Java).

Souvent, il y aura des phases supplémentaires, telles que "package" qui prend tous vos fichiers .class et les met dans un fichier .jar, ou "clean" qui nettoie les fichiers .class et les répertoires temporaires.

37
Darien

Compiler est l'acte qui consiste à transformer le code source en code objet.

La liaison consiste à combiner un code objet avec des bibliothèques dans un exécutable brut.

Le bâtiment est la séquence composée de compilation et en reliant , avec éventuellement d'autres tâches telles que la création du programme d'installation.

De nombreux compilateurs gèrent automatiquement l'étape qui relie après la compilation du code source.

Quelle est la différence entre le code de compilation et le code exécutable?

27
Kaili

En mots simples

La compilation traduit le code Java (lisible par l'homme)] en bytecode, afin que la machine virtuelle le comprenne.

La construction regroupe toutes les parties compilées et crée (construit) un exécutable.

9
Tom

En fait, vous faites la même chose. Ant est un système de construction basé sur des fichiers de configuration XML pouvant effectuer une grande variété de tâches liées à la compilation de logiciels. Compiler votre code Java n’est que l’une de ces tâches. Il existe de nombreuses autres tâches telles que la copie de fichiers, la configuration de serveurs, l’assemblage de zips et de fichiers JAR et la compilation d’autres langages tels que le langage C.

Ant n'a pas besoin de Ant pour compiler votre logiciel. Vous pouvez le faire manuellement comme vous le faites à l'école. Une autre alternative à Ant est un produit appelé Maven. Ant et Maven font la même chose, mais de manière très différente.

Recherchez Ant et Maven pour plus de détails.

4
drekka
  • Build est une version compilée d'un programme.
  • Compiler signifie convertir (un programme) en code machine ou sous forme de niveau inférieur dans lequel le programme peut être exécuté.

En Java: La construction est un cycle de vie contenant une séquence de phases nommées.

par exemple: maven a trois cycles de vie, le suivant est default cycle de vie.

◾validate - validate the project is correct and all necessary information is available
◾compile - compile the source code of the project
◾test - test the compiled source code using a suitable unit testing framework. These tests should not require the code be packaged or deployed
◾package - take the compiled code and package it in its distributable format, such as a JAR.
◾integration-test - process and deploy the package if necessary into an environment where integration tests can be run
◾verify - run any checks to verify the package is valid and meets quality criteria
◾install - install the package into the local repository, for use as a dependency in other projects locally
◾deploy - done in an integration or release environment, copies the final package to the remote repository for sharing with other developers and projects.
3
Premraj

La compilation consiste simplement à convertir le code source en binaire, la construction consiste à compiler et à relier tous les autres fichiers nécessaires au répertoire de construction.

0
patrickandroid