Tworzenie aplikacji Java
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Możesz użyć potoku danych do automatycznego:
- Skompiluj projekt przy użyciu narzędzi Maven, Gradle lub Ant.
- Uruchamianie testów i narzędzi do analizy kodu.
- Opublikuj aplikację w potoku i w usłudze Azure Artifacts.
- Wdróż aplikację do Azure App Service, Azure Functions lub Azure Kubernetes Service.
Jeśli pracujesz nad projektem systemu Android, zobacz Kompilowanie, testowanie i wdrażanie aplikacji systemu Android.
Wymagania wstępne
Aby uruchomić następujący przykład, musisz mieć następujące elementy:
- Konto usługi GitHub, na którym można utworzyć repozytorium. Utwórz je bezpłatnie.
- Organizacja: Azure DevOps. Utwórz je bezpłatnie.
- Projekt usługi Azure DevOps. Jeśli go nie masz, utwórz teraz projekt .
- Konto usługi GitHub, na którym można utworzyć repozytorium. Utwórz je bezpłatnie.
- Dostęp do kolekcji usługi Azure DevOps Server.
- Możliwość uruchamiania usługi Azure Pipelines na własnych agentach usługi Azure DevOps.
- Projekt usługi Azure DevOps. Jeśli go nie masz, utwórz teraz projekt .
Tworzenie repozytorium GitHub
Sforkuj następujące repozytorium na swoim koncie GitHub.
https://github.com/MicrosoftDocs/pipelines-java
Utwórz potok
Zaloguj się do organizacji usługi Azure DevOps i przejdź do projektu.
Przejdź do obszaru Potoki, a następnie wybierz pozycję Nowy potok lub Utwórz potok , jeśli utworzysz pierwszy potok w projekcie.
Wykonaj kroki kreatora, najpierw wybierając GitHub jako lokalizację kodu źródłowego. Być może nastąpi przekierowanie do usługi GitHub w celu zalogowania się. Jeśli tak, wprowadź swoje dane logowania do GitHub.
Wybierz repozytorium. Możesz zostać przekierowany do usługi GitHub, aby zainstalować aplikację Azure Pipelines. Jeśli tak, wybierz pozycję Zatwierdź i zainstaluj.
Po zobaczeniu karty Konfigurowanie potoku, wybierz Maven, Gradle lub Ant, w zależności od tego, jak chcesz skompletować swój kod.
W repozytorium tworzony jest plik
azure-pipelines.yml
zawierający definicję potoku i otwierany w edytorze YAML. Można dostosować pipeline, dodając więcej zadań lub modyfikując istniejące zadania. Aby uzyskać więcej informacji na temat zadań kompilacji, zobacz Kompilowanie kodu.Po zakończeniu edycji
azure-pipelines.yml
wybierz pozycję Zapisz i uruchom.Aby zatwierdzić plik w
azure-pipelines.yml
repozytorium, wybierz pozycję Zapisz i uruchom ponownie.
Wybierz Zadanie, aby obserwować potok w akcji.
Przejdź do kolekcji i wybierz projekt.
Wybierz pozycję Potoki, a następnie wybierz pozycję Nowy potok lub Utwórz potok , jeśli utworzysz pierwszy potok w projekcie.
Wykonaj kroki kreatora, wybierając najpierw pozycję GitHub Enterprise Server jako lokalizację kodu źródłowego.
Użyj istniejącego połączenia usługi GitHub lub utwórz nowe.
Aby utworzyć połączenie z usługą:
- Wybierz pozycję Połącz z serwerem GitHub Enterprise Server.
- Wprowadź adres URL serwera GitHub Enterprise Server.
- Wprowadź osobisty token dostępu serwera GitHub Enterprise Server. Jeśli nie masz osobistego tokenu dostępu, możesz go utworzyć na koncie usługi GitHub Enterprise Server. Aby uzyskać więcej informacji, zobacz Tworzenie osobistego tokenu dostępu.
Wybierz repozytorium. Możesz zostać przekierowany do usługi GitHub, aby zainstalować aplikację Azure Pipelines. Jeśli tak, wybierz pozycję Zatwierdź i zainstaluj.
Po wyświetleniu karty Konfiguruj potok, wybierz Maven, Gradle lub Ant w zależności od tego, jak chcesz skompilować swój kod.
Plik
azure-pipelines-yml
zawierający definicję potoku jest tworzony w repozytorium i otwierany w edytorze YAML. Możesz dostosować pipeline, dodając więcej zadań lub modyfikując istniejące zadania. Aby uzyskać więcej informacji na temat zadań kompilacji, zobacz Kompilowanie kodu.Po zakończeniu edycji
azure-pipelines.yml
wybierz pozycję Zapisz i uruchom.Aby zatwierdzić plik w
azure-pipelines.yml
repozytorium, wybierz pozycję Zapisz i uruchom ponownie.
Możesz wybrać pozycję Zadanie, aby obejrzeć potok danych w działaniu.
Teraz masz działający potok danych YAML (azure-pipelines.yml
) w swoim repozytorium, który jest gotowy do dostosowania. Aby wprowadzić zmiany w potoku, wybierz go na stronie Potoki, a następnie edytujazure-pipelines.yml
plik.
Środowisko kompilacji
Za pomocą usługi Azure Pipelines można tworzyć aplikacje Java bez konieczności konfigurowania własnej infrastruktury. Można tworzyć na obrazach systemu Windows, Linux lub macOS. Agenci hostowani przez firmę Microsoft w usłudze Azure Pipelines mają nowoczesne JDK i inne narzędzia wstępnie zainstalowane dla języka Java. Aby dowiedzieć się, które wersje języka Java są zainstalowane, zobacz Agenci hostowani przez firmę Microsoft.
Aby wybrać odpowiedni obraz, zaktualizuj poniższy fragment kodu w azure-pipelines.yml
pliku.
pool:
vmImage: 'ubuntu-latest' # other options: 'macOS-latest', 'windows-latest'
Aby uzyskać pełną listę obrazów, zobacz Agenci hostowani przez firmę Microsoft.
Zamiast używania agentów hostowanych przez firmę Microsoft można skonfigurować własnych agentów z zainstalowanym językiem Java. Możesz również użyć własnych agentów, aby zaoszczędzić więcej czasu, jeśli masz duże repozytorium lub uruchamiasz kompilacje przyrostowe.
Kompilacje są uruchamiane na własnym agencie. Upewnij się, że masz zainstalowane środowisko Java i narzędzia niezbędne do budowania przy użyciu wybranej metody na hoście agenta.
Możesz wybrać pulę agentów i możliwości agenta w sekcjach Pula agentów i Specyfikacja agenta na karcie Opcje w edytorze potoków.
Aby na przykład określić pulę agentów i agenta z funkcją Maven, dodaj następujący fragment kodu do azure-pipelines.yml
pliku.
pool:
name: MyPool
demands: maven
Tworzenie kodu
Aplikację Java można utworzyć za pomocą narzędzia Maven, Gradle, Ant lub skryptu. W poniższych sekcjach pokazano, jak dodać etap kompilacji do potoku dla każdej z metod.
Maven
Podczas kompilacji za pomocą Maven do pliku azure-pipelines.yml
dodawane są następujące zadania. Zamień wartości, aby pasowały do twojego projektu. Aby uzyskać więcej informacji na temat opcji zadań, zobacz zadanie Maven.
steps:
- task: Maven@4
inputs:
mavenPomFile: 'pom.xml'
mavenOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
goals: 'package'
W przypadku Spring Boot możesz również użyć zadania Maven. Upewnij się, że wartość mavenPomFile
odzwierciedla ścieżkę do pom.xml
pliku. Na przykład, jeśli używasz przykładowego repozytorium Spring Boot, to twoja ścieżka to complete/pom.xml
.
Dostosowywanie ścieżki kompilacji
Dostosuj wartość mavenPomFile
, jeśli plik pom.xml
nie znajduje się w katalogu głównym repozytorium. Wartość ścieżki pliku powinna być względna względem katalogu głównego repozytorium, takiego jak IdentityService/pom.xml
lub $(system.defaultWorkingDirectory)/IdentityService/pom.xml
.
Dostosowywanie celów narzędzia Maven
Ustaw wartość celów na rozdzielaną spacją listę celów dla programu Maven do wykonania, na przykład clean package
. Aby uzyskać szczegółowe informacje na temat typowych faz i celów języka Java, zobacz dokumentację programu Apache Maven.
Gradle
W przypadku kompilacji narzędzia Gradle do pliku azure-pipelines.yml
zostanie dodane następujące zadanie. Aby uzyskać więcej informacji na temat tych opcji, zobacz zadanie Gradle .
steps:
- task: Gradle@2
inputs:
workingDirectory: ''
gradleWrapperFile: 'gradlew'
gradleOptions: '-Xmx3072m'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: true
testResultsFiles: '**/TEST-*.xml'
tasks: 'build'
Otoka narzędzia Gradle
Musisz mieć gradlew
plik w repozytorium. Jeśli go nie masz, możesz go wygenerować, uruchamiając komendę gradle wrapper
w katalogu głównym projektu. Aby uzyskać informacje na temat tworzenia wrappera Gradle, zobacz Gradle.
Wybierz wersję narzędzia Gradle
Wersja narzędzia Gradle zainstalowana na maszynie agenta jest używana, chyba że plik repozytorium gradle/wrapper/gradle-wrapper.properties
ma właściwość określającą distributionUrl
inną wersję narzędzia Gradle do pobrania i użycia podczas kompilacji.
Dostosuj ścieżkę kompilacji
Dostosuj wartość workingDirectory
, jeśli plik gradlew
nie znajduje się w katalogu głównym repozytorium.
Wartość katalogu powinna być względna względem katalogu głównego repozytorium, takiego jak IdentityService
lub $(system.defaultWorkingDirectory)/IdentityService
.
Dostosuj wartość gradleWrapperFile
, jeśli gradlew
plik nie znajduje się w katalogu głównym repozytorium. Wartość ścieżki pliku powinna być względna względem katalogu głównego repozytorium, takiego jak IdentityService/gradlew
lub $(system.defaultWorkingDirectory)/IdentityService/gradlew
.
Dostosowywanie zadań narzędzia Gradle
Dostosuj wartość zadań dla zadań, które Gradle powinien wykonać, takich jak build
lub check
. Aby uzyskać więcej informacji na temat typowych zadań wtyczki Java dla narzędzia Gradle, zobacz dokumentację narzędzia Gradle.
Ant
Podczas kompilacji za pomocą Ant dodaj następujące zadanie do pliku azure-pipelines.yml
. Zmień wartości, takie jak ścieżka pliku build.xml
, aby pasować do konfiguracji projektu. Aby uzyskać więcej informacji na temat tych opcji, zobacz zadanie Ant . Jeśli używasz przykładowego repozytorium, musisz podać plik build.xml
w swoim repozytorium.
steps:
- task: Ant@1
inputs:
workingDirectory: ''
buildFile: 'build.xml'
javaHomeOption: 'JDKVersion'
jdkVersionOption: 'default'
jdkArchitectureOption: 'x64'
publishJUnitResults: false
testResultsFiles: '**/TEST-*.xml'
Skrypt
Aby skompilować przy użyciu wiersza polecenia lub skryptu, dodaj jeden z poniższych fragmentów kodu do azure-pipelines.yml
pliku.
Skrypt wbudowany
Krok script:
uruchamia wewnętrzny skrypt za pomocą powłoki Bash w systemach Linux i macOS oraz Wiersza polecenia w systemie Windows. Aby uzyskać szczegółowe informacje, zobacz zadanie Bash lub zadanie wiersz polecenia.
steps:
- script: |
echo Starting the build
mvn package
displayName: 'Build with Maven'
Plik skryptu
To zadanie uruchamia plik skryptu, który znajduje się w repozytorium. Aby uzyskać szczegółowe informacje, zobacz skrypt powłoki, skrypt usługi Batch lub zadanie programu PowerShell .
steps:
- task: ShellScript@2
inputs:
scriptPath: 'build.sh'
Następne kroki
Możesz opublikować wyniki kompilacji w swoim potoku. Aplikację można spakować i opublikować w pakiecie Maven lub pliku war/jar , który ma zostać wdrożony w aplikacji internetowej.
Dowiedz się więcej o tworzeniu pipeline CI/CD do celu wdrożeniowego.