Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Passaggio 2: creare il file buildspec
(Fase precedente: Fase 1: Creare il codice sorgente)
In questa fase, crei un file di specifica di compilazione. Un buildspec è una raccolta di comandi di compilazione e impostazioni correlate, in formato YAML, che viene utilizzata per eseguire una build. CodeBuild Senza una specifica di compilazione, CodeBuild non è possibile convertire con successo l'input della build in output della build o individuare l'artefatto di output della build nell'ambiente di compilazione per caricarlo nel bucket di output.
Creare questo file, denominarlo buildspec.yml
e salvarlo nella directory radice (primo livello).
version: 0.2 phases: install: runtime-versions: java: corretto11 pre_build: commands: - echo Nothing to do in the pre_build phase... build: commands: - echo Build started on `date` - mvn install post_build: commands: - echo Build completed on `date` artifacts: files: - target/messageUtil-1.0.jar
Importante
Poiché una dichiarazione della specifica di compilazione deve essere uno YAML valido, in una dichiarazione della specifica di compilazione è importante la spaziatura. Se il numero di spazi nella dichiarazione della specifica di compilazione non corrisponde a questo, la compilazione potrebbe non riuscire immediatamente. È possibile usare un convalidatore YAML per verificare se la dichiarazione della specifica di compilazione è uno YAML valido.
Nota
Invece di includere un file di specifica di compilazione nel codice sorgente, è possibile dichiarare i comandi di compilazione separatamente al momento della creazione di un progetto di compilazione. Questa funzione è utile se si desidera creare il codice sorgente con diversi comandi di compilazione senza aggiornare ogni volta l'archivio del codice sorgente. Per ulteriori informazioni, consulta Sintassi buildspec.
In questa dichiarazione della specifica di compilazione:
-
version
rappresenta la versione dello standard di specifica di compilazione utilizzata. Questa dichiarazione della specifica di compilazione utilizza la versione più recente,0.2
. -
phases
rappresenta le fasi di build durante le quali è possibile fornire istruzioni a CodeBuild per eseguire i comandi. Queste fasi di compilazione sono elencate qui comeinstall
,pre_build
,build
epost_build
. Non puoi modificare l'ortografia dei nomi di queste fasi di compilazione e non puoi creare ulteriori nomi di fasi di compilazione.In questo esempio, durante la
build
fase, CodeBuild esegue il comando.mvn install
Questo comando fornisce istruzioni a Apache Maven per compilare, testare e creare pacchetti dei file di classe Java in un artefatto di output della compilazione. Per completezza, in questo esempio alcuni comandiecho
sono posizionati in ciascuna fase di build. Quando più avanti in questo tutorial visualizzerai informazioni build dettagliate, l'output di questi comandiecho
può aiutarti a comprendere meglio in che modo CodeBuild esegue i comandi e in quale ordine. Anche se tutte le fasi di compilazione sono incluse in questo esempio, non è necessario includere una fase di compilazione se non prevedi di eseguire comandi durante tale fase. Per ogni fase di compilazione, CodeBuild esegue ogni comando specificato, uno alla volta, nell'ordine elencato, dall'inizio alla fine. -
artifacts
rappresenta l'insieme di artefatti di output della build che CodeBuild vengono caricati nel bucket di output.files
rappresenta i file da includere nell'output della build. CodeBuild carica il singolomessageUtil-1.0.jar
file trovato nella directorytarget
relativa nell'ambiente di compilazione. Il nome del filemessageUtil-1.0.jar
e il nome della directorytarget
sono basati sul modo in cui Apache Maven crea e archivia elementi di output di compilazione unicamente per questo esempio. Nelle tue build, questi nomi di file e directory sono differenti.
Per ulteriori informazioni, consulta Riferimento per buildspec.
A questo punto, la tua struttura di directory dovrebbe avere questo aspetto.
(root directory name)
|-- pom.xml |-- buildspec.yml `-- src |-- main | `-- java | `-- MessageUtil.java `-- test `-- java `-- TestMessageUtil.java