Compilare app Java
Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019
È possibile usare una pipeline per:
- Compilare il progetto usando Maven, Gradle o Ant.
- Eseguire test e strumenti di analisi del codice.
- Pubblicare l'app nella pipeline e in Azure Artifacts.
- Distribuire l'app in servizio app Azure, Funzioni di Azure o servizio Azure Kubernetes.
Se si sta lavorando a un progetto Android, vedere Compilare, testare e distribuire app Android.
Prerequisiti
Per eseguire l'esempio seguente, è necessario disporre di:
- Un account GitHub in cui è possibile creare un repository. Crearne una gratuitamente.
- Un'organizzazione di Azure DevOps. Crearne una gratuitamente.
- Un progetto Azure DevOps. Se non è disponibile, creare un progetto ora.
- Un account GitHub in cui è possibile creare un repository. Crearne una gratuitamente.
- Accesso a una raccolta di Azure DevOps Server.
- Possibilità di eseguire Azure Pipelines in agenti self-hosted di Azure DevOps.
- Un progetto Azure DevOps. Se non è disponibile, creare un progetto ora.
Creare un repository GitHub
Creare una copia tramite fork del repository seguente nell'account GitHub:
https://github.com/MicrosoftDocs/pipelines-java
Creare una pipeline
Accedere all'organizzazione di Azure DevOps e passare al progetto.
Passare a Pipeline e quindi selezionare Nuova pipeline o Crea pipeline se si crea la prima pipeline nel progetto.
Eseguire i passaggi della procedura guidata selezionando prima GitHub come percorso del codice sorgente. Si potrebbe essere reindirizzati a GitHub per l'accesso. In questo caso, immettere le credenziali di GitHub.
Selezionare il repository. È possibile che si venga reindirizzati a GitHub per installare l'app Azure Pipelines. In tal caso, selezionare Approva e installa.
Quando viene visualizzata la scheda Configura la pipeline , selezionare Maven, Gradle o Ant a seconda della modalità di compilazione del codice.
Un
azure-pipelines.yml
file contenente la definizione della pipeline viene creato nel repository e aperto nell'editor YAML. È possibile personalizzare la pipeline aggiungendo altre attività o modificando le attività esistenti. Per altre informazioni sulle attività di compilazione, vedere Creare il codice.Al termine della modifica
azure-pipelines.yml
, selezionare Salva ed esegui.Per eseguire il commit del file nel
azure-pipelines.yml
repository, selezionare Salva ed esegui di nuovo.
Selezionare Processo per controllare la pipeline in azione.
Passare alla raccolta e selezionare il progetto.
Selezionare Pipeline e quindi selezionare Nuova pipeline o Crea pipeline se si crea la prima pipeline nel progetto.
Eseguire i passaggi della procedura guidata selezionando prima GitHub Enterprise Server come percorso del codice sorgente.
Usare una connessione al servizio GitHub esistente o crearne una nuova.
Per creare una connessione al servizio:
- Selezionare Connetti a GitHub Enterprise Server.
- Immettere l'URL di GitHub Enterprise Server.
- Immettere il token di accesso personale di GitHub Enterprise Server. Se non si ha un token di accesso personale, è possibile crearne uno nell'account GitHub Enterprise Server. Per altre informazioni, vedere Creazione di un token di accesso personale.
Selezionare il repository. È possibile che si venga reindirizzati a GitHub per installare l'app Azure Pipelines. In tal caso, selezionare Approva e installa.
Quando viene visualizzata la scheda Configura la pipeline , selezionare Maven, Gradle o Ant a seconda della modalità di compilazione del codice.
Un
azure-pipelines-yml
file contenente la definizione della pipeline viene creato nel repository e aperto nell'editor YAML. È possibile personalizzare la pipeline aggiungendo altre attività o modificando le attività esistenti. Per altre informazioni sulle attività di compilazione, vedere Creare il codice.Al termine della modifica
azure-pipelines.yml
, selezionare Salva ed esegui.Per eseguire il commit del file nel
azure-pipelines.yml
repository, selezionare Salva ed esegui di nuovo.
È possibile selezionare Processo per controllare la pipeline in azione.
È ora disponibile una pipeline YAML funzionante (azure-pipelines.yml
) nel repository pronto per la personalizzazione. Per apportare modifiche alla pipeline, selezionarla nella pagina Pipeline e quindi Modificare il azure-pipelines.yml
file.
Ambiente di compilazione
È possibile usare Azure Pipelines per creare app Java senza dover configurare un'infrastruttura personalizzata. È possibile usare immagini Windows, Linux o macOS. Gli agenti ospitati da Microsoft in Azure Pipelines hanno JDK moderni e altri strumenti per Java preinstallati. Per conoscere le versioni di Java installate, vedere Agenti ospitati da Microsoft.
Per selezionare l'immagine appropriata, aggiornare il frammento di codice seguente nel azure-pipelines.yml
file.
pool:
vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'
Per un elenco completo delle immagini, vedere Agenti ospitati da Microsoft.
In alternativa all'uso di agenti ospitati da Microsoft, è possibile configurare agenti self-hosted con Java installato. È anche possibile usare agenti self-hosted per risparmiare più tempo se si dispone di un repository di grandi dimensioni o si eseguono compilazioni incrementali.
Le compilazioni vengono eseguite su un agente self-hosted. Assicurarsi di disporre di Java e degli strumenti necessari per compilare con il metodo scelto installato nell'host dell'agente.
È possibile selezionare il pool di agenti e le funzionalità dell'agente nelle sezioni Pool di agenti e Specifica agente della scheda Opzioni nell'editor della pipeline.
Ad esempio, per specificare il pool di agenti e un agente con la funzionalità Maven, aggiungere il frammento di codice seguente al azure-pipelines.yml
file.
pool:
name: MyPool
demands: maven
Compilare il codice
È possibile compilare l'app Java con Maven, Gradle, Ant o uno script. Le sezioni seguenti illustrano come aggiungere un passaggio di compilazione alla pipeline per ogni metodo.
Maven
Con la compilazione Maven, al file vengono aggiunte azure-pipelines.yml
le attività seguenti. Sostituire i valori in modo che corrispondano al progetto. Per altre informazioni sulle opzioni delle attività, vedere l'attività Maven.
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
goals: 'package'
Per Spring Boot, è possibile usare anche l'attività Maven . Assicurarsi che il mavenPomFile
valore rifletta il percorso del pom.xml
file. Ad esempio, se si usa il repository di esempio Spring Boot, il percorso è complete/pom.xml
.
Personalizzare il percorso di compilazione
Modificare il mavenPomFile
valore se il pom.xml
file non si trova nella radice del repository. Il valore del percorso del file deve essere relativo alla radice del repository, ad esempio IdentityService/pom.xml
o $(system.defaultWorkingDirectory)/IdentityService/pom.xml
.
Personalizzare gli obiettivi di Maven
Impostare il valore degli obiettivi su un elenco di obiettivi separati da spazi per l'esecuzione di Maven, ad esempio clean package
. Per informazioni dettagliate sulle fasi e gli obiettivi comuni di Java, vedere la documentazione di Maven di Apache.
Gradle
Con la compilazione Gradle, al file viene aggiunta azure-pipelines.yml
l'attività seguente. Per altre informazioni su queste opzioni, vedere l'attività Gradle .
steps:
- task: Gradle@2
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'build'
Wrapper Gradle
È necessario avere un gradlew
file nel repository. Se non è disponibile, è possibile generarlo eseguendo gradle wrapper
nella directory radice del progetto. Per informazioni sulla creazione di un wrapper Gradle, vedere Gradle.
Scegliere la versione di Gradle
La versione di Gradle installata nel computer agente viene usata a meno che il file del gradle/wrapper/gradle-wrapper.properties
repository non abbia una proprietà che specifica una distributionUrl
versione diversa di Gradle da scaricare e usare durante la compilazione.
Modificare il percorso di compilazione
Modificare il workingDirectory
valore se il gradlew
file non si trova nella radice del repository.
Il valore della directory deve essere relativo alla radice del repository, ad esempio IdentityService
o $(system.defaultWorkingDirectory)/IdentityService
.
Modificare il gradleWrapperFile
valore se il gradlew
file non si trova nella radice del repository. Il valore del percorso del file deve essere relativo alla radice del repository, ad esempio IdentityService/gradlew
o $(system.defaultWorkingDirectory)/IdentityService/gradlew
.
Regolare le attività gradle
Modificare il valore delle attività per le attività che Gradle deve eseguire, ad esempio build
o check
. Per altre informazioni sulle attività comuni del plug-in Java per Gradle, vedere la documentazione di Gradle.
Ant
Con la compilazione Ant, aggiungere l'attività seguente al azure-pipelines.yml
file. Modificare i valori, ad esempio il percorso del build.xml
file, in modo che corrispondano alla configurazione del progetto. Per altre informazioni su queste opzioni, vedere l'attività Ant . Se si usa il repository di esempio, è necessario fornire un build.xml
file nel repository.
steps:
- task: Ant@1
inputs:
workingDirectory: ''
buildFile: 'build.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
Script
Per compilare con una riga di comando o uno script, aggiungere uno dei frammenti di codice seguenti al azure-pipelines.yml
file.
Script inline
Il script:
passaggio esegue uno script inline usando Bash in Linux e macOS e il prompt dei comandi in Windows. Per informazioni dettagliate, vedere l'attività Bash o riga di comando .
steps:
- script: |
echo Starting the build
mvn package
displayName: 'Build with Maven'
File script
Questa attività esegue un file di script presente nel repository. Per informazioni dettagliate, vedere l'attività Script shell, script Batch o PowerShell .
steps:
- task: ShellScript@2
inputs:
scriptPath: 'build.sh'
Passaggi successivi
È possibile pubblicare l'output di compilazione nella pipeline. È possibile creare un pacchetto e pubblicare l'app in un pacchetto Maven o in un file con estensione war/jar da distribuire in un'applicazione Web.
Altre informazioni sulla creazione di una pipeline CI/CD per la destinazione di distribuzione: