Compilare app Java

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

È possibile usare una pipeline per:

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.
  • 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

  1. Accedere all'organizzazione di Azure DevOps e passare al progetto.

  2. Passare a Pipeline e quindi selezionare Nuova pipeline o Crea pipeline se si crea la prima pipeline nel progetto.

  3. 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.

  4. Selezionare il repository. È possibile che si venga reindirizzati a GitHub per installare l'app Azure Pipelines. In tal caso, selezionare Approva e installa.

  5. Quando viene visualizzata la scheda Configura la pipeline , selezionare Maven, Gradle o Ant a seconda della modalità di compilazione del codice.

  6. 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.

  7. Al termine della modifica azure-pipelines.yml, selezionare Salva ed esegui.

  8. 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.

  1. Passare alla raccolta e selezionare il progetto.

  2. Selezionare Pipeline e quindi selezionare Nuova pipeline o Crea pipeline se si crea la prima pipeline nel progetto.

  3. Eseguire i passaggi della procedura guidata selezionando prima GitHub Enterprise Server come percorso del codice sorgente.

  4. Usare una connessione al servizio GitHub esistente o crearne una nuova.

    Per creare una connessione al servizio:

    1. Selezionare Connessione in GitHub Enterprise Server.
    2. Immettere l'URL di GitHub Enterprise Server.
    3. 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.
  5. Selezionare il repository. È possibile che si venga reindirizzati a GitHub per installare l'app Azure Pipelines. In tal caso, selezionare Approva e installa.

  6. Quando viene visualizzata la scheda Configura la pipeline , selezionare Maven, Gradle o Ant a seconda della modalità di compilazione del codice.

  7. 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.

  8. Al termine della modifica azure-pipelines.yml, selezionare Salva ed esegui.

  9. 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: