Qu'est ce qu'un outil de construction?


Depuis 4 ans, j'ai programmé avec Eclipse (pour Java) et Visual Studio Express (pour C#). LesEs mentionnés semblaient toujours fournir toutes les facilités qu'un programmeur pourrait demander (liées à la programmation, bien sûr).

Dernièrement, j'ai entendu parler de quelque chose appelé "outils de construction". J'ai entendu dire qu'ils sont utilisés presque dans toutes sortes de développement du monde réel. Quels sont-ils exactement? Quels problèmes sont-ils conçus pour résoudre? Comment se fait-je n'ai jamais eu besoin d'eux dans les quatre dernières années? Être ils genre de ligne de commande dépouillé ID?

Author: Danubian Sailor, 2011-08-31

8 answers

Que sont les outils de construction?

Les outils de construction sont des programmes qui automatisent la création d'exécutables applications à partir du code source (par exemple. .apk pour l'application Android). Bâtiment incorpore la compilation, la liaison et l'empaquetage du code dans un ou sous une forme exécutable.

Fondamentalement, l'automatisation de la construction est l'acte de scripter ou d'automatiser un grande variété de tâches que les développeurs de logiciels font dans leur quotidien activités comme:

  1. Téléchargement dépendance.
  2. Compiler le code source en code binaire.
  3. Empaquetant ce code binaire.
  4. Tests en cours.
  5. Déploiement dans les systèmes de production.

Pourquoi utiliser des outils de génération ou de l'automatisation de la compilation?

Dans les petits projets, les développeurs invoquent souvent manuellement la construction processus. Ce n'est pas pratique pour les grands projets, où il est très difficile de garder une trace de ce qui doit être construit, dans quel ordre et quelles dépendances il y a dans le processus de construction. À l'aide d'un l'outil d'automatisation permet au processus de construction d'être plus cohérent.

Divers outils de construction disponibles(Nommer seulement quelques-uns):

  1. Pour java - Ant,Maven,Gradle.
  2. Pour. NET framework-NAnt
  3. c# - MSBuild.

Pour en savoir plus, vous pouvez consulter les liens suivants:

1.Automatisation de construction

2. Liste des logiciel d'automatisation de construction

Merci.

 81
Author: Ritesh Gune, 2016-07-22 06:00:02

Les outils de build sont des outils pour gérer et organiser vos builds, et sont très importants dans les environnements où il y a beaucoup de projets, surtout s'ils sont interconnectés. Ils servent à s'assurer que lorsque diverses personnes travaillent sur divers projets, elles ne cassent rien. Et pour vous assurer que lorsque vous effectuez vos modifications, elles ne cassent rien non plus.

La raison pour laquelle vous n'en avez pas entendu parler auparavant est que vous n'avez pas travaillé dans un environnement commercial auparavant. Il y a beaucoup de choses que vous n'avez probablement pas rencontrées dans un environnement commercial, surtout si vous travaillez dans des éditeurs de logiciels.

Comme d'autres l'ont dit, vous les avez utilisés, cependant, vous n'avez pas eu à les considérer, parce que vous avez probablement travaillé d'une manière différente de la manière commerciale habituelle de travailler.

 16
Author: Schroedingers Cat, 2017-01-09 17:42:46

Les outils de construction sont généralement exécutés sur la ligne de commande, soit à l'intérieur d'unE, soit complètement séparés de celui-ci.

L'idée est de séparer le travail de compilation et d'empaquetage de votre code de la création, du débogage, etc.

Un outil de construction peut être exécuté sur la commande ou à l'intérieur d'unE, tous deux déclenchés par vous. Ils peuvent également être utilisés par les outils d'intégration continue après avoir vérifié votre code à partir d'un référentiel et sur une machine de construction propre.

Make était un premier outil de commande utilisé dans * environnements nix pour la construction C / C++.

En tant que développeur Java, les outils de construction les plus populaires sont Ant et Maven. Les deux peuvent être exécutés dans desEs comme IntelliJ ou Eclipse ou NetBeans. Ils peuvent également être utilisés par des outils d'intégration continue comme Cruise Control ou Hudson.

 10
Author: duffymo, 2011-08-30 21:16:00

Les outils de construction consistent généralement à transformer le code source en binaires - il organise le code source, définit les indicateurs de compilation, gère les dépendances... certains d'entre eux s'intègrent également à l'exécution d'un test unitaire, à l'analyse statique, à une documentation génératrice.

Eclipse ou Visual Studio sont également des systèmes de construction (mais plus d'unE), et pour visual studio, c'est le msbuild sous-jacent pour analyser les fichiers de projet visual studio sous le capot.

L'origine de tous les systèmes de construction semble être la célèbre "faire".

Il existe des systèmes de construction pour différentes langues:

  1. C++: faire, cmake, premake
  2. Java: ant+lierre, maven, gradle
  3. C#: msbuild

Généralement, les systèmes de construction utilisent un langage spécifique au domaine de propriété (make, cmake) ou xml (ant, maven, msbuild) pour spécifier une construction. La tendance actuelle est d'utiliser un véritable langage de script pour écrire un script de construction, comme lua pour premake, et groovy pour gradle, l'avantage d'utiliser un script est qu'il est beaucoup plus flexible, et vous permet également de proposer un ensemble d'API standard(comme build DSL).

 4
Author: Baiyan Huang, 2013-08-09 14:23:25

Le processus de construction est un processus de compilation de votre code source pour toute erreur à l'aide de certains outils de construction et de création de builds(qui sont des versions exécutables du projet). Nous (principalement les développeurs) faisons quelques modifications dans le code source et vérifions ce code pour que le processus de construction se produise. Après le processus de construction, il donne deux résultats : 1. Soit la construction PASSE et vous obtenez une version exécutable de votre projet(la construction est prête). 2. Il échoue et vous obtenez certaines erreurs et la construction ne l'est pas créé.

, Il existe différents types de processus de construction comme : 1. Nightly Build 2. dépendants de Construire 3. Intégration continue construire etc.

Build tools aide et automatise le processus de création de builds.

*Donc, en bref, Build est une Version de Logiciel au format pré-version utilisée par le Développeur ou l'équipe de développement pour gagner en confiance pour le résultat final de leur Produit en surveillant continuellement leur Produit et en résolvant les problèmes au début du développement processus.*

 1
Author: Prakash, 2013-12-10 07:50:54

Ce sont différents types de processus par lesquels vous pouvez effectuer vos builds.

1. Construction d'intégration continue: Dans ce cas, les développeurs enregistrent principalement leur code et juste après leur enregistrement, une construction démarre pour la construction des modifications récentes, nous devons donc savoir si les modifications effectuées par le développeur ont fonctionné ou non juste après l'enregistrement. C'est préférable pour les petits projets ou composantes des projets. Dans le cas où plusieurs équipes sont associées avec le projet ou il y a un grand pas. des développeurs travaillant sur le même projet, ce scénario devient difficile à gérer comme s'il y avait " n " non. de check-in et la construction échoue à certains points, il devient très difficile de savoir si toute la casse s'est produite à cause d'un problème ou de plusieurs problèmes, donc si les problèmes plus anciens ne sont pas traités correctement, il devient très difficile de retracer les défauts ultérieurs survenus après ce changement. Le principal avantage de ces construit est que nous apprenons à connaître si un enregistrement est réussi ou pas.

2. Gated check-in builds: Dans ce type de check-in, une build est lancée juste après l'enregistrement, en conservant les modifications dans un jeu d'étagères. Dans ce cas, si la construction réussit, l'enregistrement du jeu de étagères est validé, sinon il ne sera pas validé sur le serveur Team Foundation. Cela donne une image légèrement meilleure de la construction d'intégration continue comme seul le succès check-in sont autorisés à s'engager.

3. Nightly builds: Ceci est également appelé builds planifiés. Dans ce cas, nous planifions l'exécution des builds pour une durée spécifique afin de générer les modifications. Toutes les modifications non validées précédentes de la dernière génération sont créées au cours de ce processus de génération. Ceci est pratiqué lorsque nous voulons vérifier plusieurs fois mais que nous ne voulons pas de build à chaque fois que nous vérifions notre code afin que nous puissions avoir un temps ou une période fixe pour lancer la build pour la construction du code d'enregistrement.

Plus de détails sur ces builds peuvent être trouvés à l'emplacement ci-dessous.

Gated-check dans les constructions

Intégration Continue S'Appuie

Construction nocturne

 1
Author: Prakash, 2017-04-13 12:22:47

Vous les avez utilisés - ID est un outil de construction. Pour la ligne de commande vous pouvez utiliser des choses comme make.

Les gens utilisent des outils de ligne de commande pour des choses comme une construction nocturne-donc le matin avec une gueule de bois, le programmeur s'est rendu compte que le code qu'il a manipulé avec les dernières versions des bibliothèques ne fonctionne pas!

 0
Author: Ed Heal, 2011-08-30 21:16:28

"it il est très difficile de garder une trace de ce qui doit être construit" - Les outils de construction n'aident pas à tout cela. Vous devez savoir ce que vous voulez construire. (Cité de la réponse de Ritesh Gun)

"J'ai entendu dire qu'ils sont utilisés presque dans tous les types de développement du monde réel"-Pour une raison quelconque, les développeurs de logiciels aiment travailler dans de grandes entreprises. Ils semblent avoir des directives de travail plus floues pour chaque personne qui y travaille.

"Comment se fait-il que je n'en ai jamais eu besoin au cours des quatre dernières années". Probablement parce que vous êtes un programmeur expérimenté.

Pseudo, meta. Je pense que les outils de construction ne fournissent aucun avantage vraiment réel. Il est juste là pour ajouter un sentiment de sécurité découlant de mauvaises pratiques de l'entreprise, manque de direction - mauvais leadership architectural logiciel conduisant à une mauvaise connaissance réelle du projet. Vous ne devriez jamais avoir à utiliser des outils de construction (pour les tests) dans votre projet. Faire des tests aléatoires avec un manque de connaissance du projet de logiciel ne donne aucune sorte d'aide à tout.

Vous ne devriez jamais ajouter quelque chose à un projet sans savoir son but et comment cela fonctionnera avec les autres composants. Les composants peuvent être fonctionnels séparés, mais ne fonctionnent pas ensemble. (C'est la responsabilité de l'architecte logiciel que j'assume).

Que faire si 4-5 composants sont ajoutés dans le projet. Vous ajoutez un 6ème composant. Avec le premier composant ajouté, il pourrait tout bousiller. Aucun automatique ne permettrait de détecter cela.

Il n'y a pas de raccourci autre que de penser penser penser.

Ensuite, il y a le téléchargement automatique à partir des dépôts. Pourquoi voudriez-vous jamais eu envie de le faire? Vous devez savoir ce que vous téléchargez, ce que vous ajoutez au projet. Comment détecter les changements dans les versions des référentiels? Vous avez besoin de savoir. Vous ne pouvez rien "auto".

Et si nous devions tester des vélos et des transports de bébé les yeux bandés avec un bâton et frapper au hasard avec. Cela semble être l'idée de construire des tests d'outils.

Je suis désolé il n'y a pas de raccourci https://en.wikipedia.org/wiki/Scientific_method et https://en.wikipedia.org/wiki/Analysis

 0
Author: Lealo, 2018-07-28 16:35:38