Introducció

L'automatització de la construcció és un component fonamental de la Integració Contínua (CI). Permet compilar el codi font, executar proves i preparar el programari per a la seva distribució de manera automàtica. Això garanteix que cada canvi en el codi sigui verificat i integrat de manera eficient i consistent.

Objectius

  • Entendre la importància de l'automatització de la construcció.
  • Aprendre a configurar scripts de construcció.
  • Conèixer les eines més utilitzades per a l'automatització de la construcció.
  • Implementar un procés de construcció automatitzat.

Conceptes Clau

  1. Script de Construcció: Un conjunt d'instruccions que defineixen com compilar i empaquetar el codi.
  2. Eines de Construcció: Programari que facilita la creació i execució d'scripts de construcció.
  3. Integració Contínua (CI): Pràctica de fusionar canvis de codi de manera freqüent i automàtica.

Eines Populars per a l'Automatització de la Construcció

  • Maven: Utilitzat principalment en projectes Java.
  • Gradle: Flexible i potent, també popular en projectes Java.
  • Ant: Una eina més antiga però encara utilitzada en alguns projectes Java.
  • Make: Utilitzat en projectes C/C++.
  • NPM/Yarn: Utilitzats en projectes JavaScript/Node.js.

Configuració d'un Script de Construcció

Exemple amb Maven

Maven és una eina de construcció i gestió de projectes per a Java. Utilitza un fitxer pom.xml per definir el projecte, les seves dependències i les tasques de construcció.

Pas 1: Crear el fitxer pom.xml

<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <groupId>com.example</groupId>
    <artifactId>my-app</artifactId>
    <version>1.0-SNAPSHOT</version>
    <dependencies>
        <!-- Dependències del projecte -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>
</project>

Pas 2: Executar la construcció

mvn clean install

Aquest comandament neteja el projecte (elimina fitxers generats anteriorment) i compila el codi, executa les proves i empaqueta l'aplicació.

Exemple amb Gradle

Gradle és una eina de construcció moderna que utilitza un fitxer build.gradle per definir les tasques de construcció.

Pas 1: Crear el fitxer build.gradle

plugins {
    id 'java'
}

group 'com.example'
version '1.0-SNAPSHOT'

repositories {
    mavenCentral()
}

dependencies {
    testImplementation 'junit:junit:4.12'
}

test {
    useJUnitPlatform()
}

Pas 2: Executar la construcció

gradle build

Aquest comandament compila el codi, executa les proves i empaqueta l'aplicació.

Exercici Pràctic

Objectiu

Configurar un script de construcció per a un projecte Java utilitzant Maven.

Passos

  1. Crear un projecte Java:

    • Crear una estructura de directoris:
      mkdir -p my-app/src/main/java/com/example
      mkdir -p my-app/src/test/java/com/example
      
  2. Crear el fitxer pom.xml:

    • A la carpeta my-app, crear el fitxer pom.xml amb el contingut proporcionat anteriorment.
  3. Afegir codi font:

    • Crear un fitxer App.java a src/main/java/com/example:
      package com.example;
      
      public class App {
          public static void main(String[] args) {
              System.out.println("Hello, World!");
          }
      }
      
  4. Afegir proves:

    • Crear un fitxer AppTest.java a src/test/java/com/example:
      package com.example;
      
      import org.junit.Test;
      import static org.junit.Assert.*;
      
      public class AppTest {
          @Test
          public void testApp() {
              assertTrue(true);
          }
      }
      
  5. Executar la construcció:

    • Des de la carpeta my-app, executar:
      mvn clean install
      

Solució

Si tot està configurat correctament, el comandament mvn clean install hauria de compilar el codi, executar les proves i empaquetar l'aplicació sense errors.

Errors Comuns i Consells

  • Error: No s'ha trobat el fitxer pom.xml:
    • Assegura't que estàs executant el comandament des de la carpeta correcta.
  • Error: Dependència no trobada:
    • Verifica que les dependències estan correctament especificades al fitxer pom.xml.
  • Consell: Utilitza un entorn de desenvolupament integrat (IDE) com IntelliJ IDEA o Eclipse per facilitar la gestió del projecte i les dependències.

Conclusió

L'automatització de la construcció és essencial per garantir que el codi es compila i es prova de manera consistent. Utilitzant eines com Maven o Gradle, podem definir processos de construcció que s'executen automàticament cada vegada que es realitzen canvis en el codi, millorant així la qualitat i l'eficiència del desenvolupament del programari.

© Copyright 2024. Tots els drets reservats