Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maven V5: New major version of the Maven task #20636

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
Expand Up @@ -324,6 +324,8 @@ Tasks/MavenV3/ @microsoft/akvelon-build-task-team

Tasks/MavenV4/ @microsoft/akvelon-build-task-team

Tasks/MavenV5/ @microsoft/akvelon-build-task-team

Tasks/MSBuildV1/ @microsoft/akvelon-build-task-team

Tasks/MysqlDeploymentOnMachineGroupV1/ @microsoft/release-management-task-team @manolerazvan
Expand Down
48 changes: 48 additions & 0 deletions Tasks/MavenV5/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
# Build your Java code using Maven in Azure Pipelines

### Parameters for Maven build task are explained below

- **Maven POM file :** This is a Required field. Provide relative path from the repo root to the Maven POM .xml file. [Click here to know more about POM] (https://maven.apache.org/guides/introduction/introduction-to-the-pom.html)

- **Options :** Specify any Maven options you want to use

- **Goal(s) :** In most cases, set this to `package` to compile your code and package it into a .war file. If you leave this argument blank, the build will fail. [Click here to know more about Maven Build Lifecycle](https://maven.apache.org/guides/introduction/introduction-to-the-lifecycle.html)

#### JUnit Test Results
Use the next three options to manage your JUnit test results in Azure Pipelines

- **Publish to Azure Pipelines/TFS :** Select this option to publish JUnit Test results produced by the Maven build to Azure Pipelines/TFS. Each test result file matching `Test Results Files` will be published as a test run in Azure Pipelines/TFS.

- **Test Results Files :** This option will appear if you select the above option. Here, provide Test results files path. Wildcards can be used. For example, `**/TEST-*.xml` for all xml files whose name starts with `TEST-."`. Defaults to `$(System.DefaultWorkingDirectory)`

- **Test Run Title :** This option will appear if you select the `Publish to Azure Pipelines/TFS` option. Here provide a name for the Test Run

#### Advanced
Use the next options to manage your `JAVA_HOME` attribute by JDK Version and Path

- **Set JAVA_HOME by :** Select to set `JAVA_HOME` either by providing a path or let Azure Pipelines set the `JAVA_HOME` based on JDK version choosen. By default it is set to `JDK Version`

- **JDK Version :** Here provide the PATH to `JAVA_HOME` if you want to set it by path or select the appropriate JDK verision.

- **JDK Architecture :** Select the approriate JDK Architecture. By default it is set to `x86`

#### Code Analysis

- **Run SonarQube Analysis :** You can choose to run SonarQube analysis after executing the current goals. 'install' or 'package' goals should be executed first. To know more about this option [click here](https://blogs.msdn.com/b/visualstudioalm/archive/2015/10/08/the-maven-build-task-now-simplifies-sonarqube-analysis.aspx)

- **Run Checkstyle :** You can choose to run the Checkstyle static code analysis tool, which checks the compliance of your source code with coding rules. You will receive a code analysis report with the number of violations detected, as well as the original report files if there were any violations.

- **Run PMD :** You can choose to run the PMD static code analysis tool, which examines your source code for possible bugs. You will receive a code analysis report with the number of violations detected, as well as the original report files if there were any violations.

- **Run FindBugs :** You can choose to run the FindBugs static code analysis tool, which examines the bytecode of your program for possible bugs. You will receive a code analysis report with the number of violations detected, as well as the original report files if there were any violations.











96 changes: 96 additions & 0 deletions Tasks/MavenV5/Strings/resources.resjson/de-DE/resources.resjson
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@
{
"loc.friendlyName": "Maven",
"loc.helpMarkDown": "[Weitere Informationen zu dieser Aufgabe](https://go.microsoft.com/fwlink/?LinkID=613723) oder [Maven-Dokumentation anzeigen](http://maven.apache.org/guides/index.html)",
"loc.description": "Hiermit erfolgt eine Erstellung, Testdurchführung und Bereitstellung mit Apache Maven.",
"loc.instanceNameFormat": "Maven $(mavenPOMFile)",
"loc.releaseNotes": "Die Konfiguration der SonarQube-Analyse wurde in die Erweiterungen [SonarQube](https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube) oder [SonarCloud](https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarcloud) in der Aufgabe „Analysekonfiguration vorbereiten“ verschoben.",
"loc.group.displayName.junitTestResults": "JUnit-Testergebnisse",
"loc.group.displayName.advanced": "Erweitert",
"loc.group.displayName.CodeAnalysis": "Code Analysis",
"loc.input.label.mavenPOMFile": "Maven-POM-Datei",
"loc.input.help.mavenPOMFile": "Der relative Pfad vom Repositorystamm zur Maven-POM-Datei.",
"loc.input.label.goals": "Ziel(e)",
"loc.input.label.options": "Optionen",
"loc.input.label.publishJUnitResults": "In Azure Pipelines veröffentlichen",
"loc.input.help.publishJUnitResults": "Wählen Sie diese Option aus, um vom Maven-Build generierte JUnit-Testergebnisse in Azure Pipelines zu veröffentlichen. Jede Testergebnisdatei, die mit \"Testergebnisdateien\" übereinstimmt, wird als Testlauf in Azure Pipelines veröffentlicht.",
"loc.input.label.testResultsFiles": "Testergebnisdateien",
"loc.input.help.testResultsFiles": "Geben Sie Pfad und Muster der Testergebnisdateien für die Veröffentlichung an. Platzhalter können verwendet werden ([weitere Informationen](https://go.microsoft.com/fwlink/?linkid=856077)). Verwenden Sie beispielsweise \"**/TEST-*.xml\" für alle XML-Dateien, deren Name mit \"TEST-\" beginnt. Wenn kein Stammpfad angegeben wird, wird ein Abgleich für die Dateien unterhalb des Standardarbeitsverzeichnisses durchgeführt. Das Verzeichnis ist als Wert in dieser Variablen verfügbar: $(System.DefaultWorkingDirectory). Mit dem Wert \"**/TEST-*.xml\" wird beispielsweise ein Abgleich für die Dateien aus \"$(System.DefaultWorkingDirectory)/**/TEST-*.xml\" durchgeführt.",
"loc.input.label.testRunTitle": "Testlauftitel",
"loc.input.help.testRunTitle": "Geben Sie einen Namen für den Testlauf an.",
"loc.input.label.allowBrokenSymbolicLinks": "Fehlerhafte symbolische Links zulassen",
"loc.input.help.allowBrokenSymbolicLinks": "Setzen Sie false, um die Erstellung fehlschlagen zu lassen, wenn die Aufgabe während der Veröffentlichung des Testergebnisses einen defekten symbolischen Link findet",
"loc.input.label.javaHomeSelection": "JAVA_HOME festlegen durch",
"loc.input.help.javaHomeSelection": "Legt JAVA_HOME durch Auswählen einer JDK-Version fest, die während der Erstellung von Builds oder durch manuelles Eingeben eines JDK-Pfads ermittelt wird.",
"loc.input.label.jdkVersion": "JDK-Version",
"loc.input.help.jdkVersion": "Versucht, den Pfad zur ausgewählten JDK-Version zu ermitteln und JAVA_HOME entsprechend festzulegen.",
"loc.input.label.jdkUserInputPath": "JDK-Pfad",
"loc.input.help.jdkUserInputPath": "Legt JAVA_HOME auf den angegebenen Pfad fest.",
"loc.input.label.jdkArchitecture": "JDK-Architektur",
"loc.input.help.jdkArchitecture": "Geben Sie optional die JDK-Architektur an (x86, x64).",
"loc.input.label.mavenVersionSelection": "Maven-Version",
"loc.input.help.mavenVersionSelection": "Verwendet die Maven-Standardversion oder die Version im angegebenen benutzerdefinierten Pfad.",
"loc.input.label.mavenPath": "Maven-Pfad",
"loc.input.help.mavenPath": "Geben Sie den benutzerdefinierten Pfad zur Maven-Installation an (z. B. \"/usr/share/maven\").",
"loc.input.label.mavenSetM2Home": "Variable \"M2_HOME\" festlegen",
"loc.input.help.mavenSetM2Home": "Legt die Variable \"M2_HOME\" auf einen benutzerdefinierten Maven-Installationspfad fest.",
"loc.input.label.mavenOpts": "MAVEN_OPTS festlegen auf",
"loc.input.help.mavenOpts": "Legt die Umgebungsvariable MAVEN_OPTS fest, die zum Senden von Befehlszeilenargumenten zum Starten von JVM verwendet wird. Das Kennzeichen \"-Xmx\" gibt den maximalen Arbeitsspeicher an, der für JVM verfügbar ist.",
"loc.input.label.mavenFeedAuthenticate": "Mit Artefaktfeeds authentifizieren",
"loc.input.help.mavenFeedAuthenticate": "Authentifiziert sich automatisch mit Azure Artifacts Feeds. Wenn Artefaktfeeds nicht verwendet werden, deaktivieren Sie diese Option für schnellere Builds.",
"loc.input.label.skipEffectivePom": "Generierung eines effektiven POM während der Authentifizierung mit Artefaktfeeds überspringen",
"loc.input.help.skipEffectivePom": "Authentifiziert sich mit Artefaktenfeeds nur mithilfe des POM.",
"loc.input.label.sqAnalysisEnabled": "SonarQube- oder SonarCloud-Analyse ausführen",
"loc.input.help.sqAnalysisEnabled": "Diese Option wurde im Vergleich zu Version 1 der Aufgabe **Maven** dahingehend geändert, dass jetzt die Marketplace-Erweiterungen [SonarQube](https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarqube) und [SonarCloud](https://marketplace.visualstudio.com/items?itemName=SonarSource.sonarcloud) verwendet werden. Aktivieren Sie diese Option, um eine [SonarQube- oder SonarCloud-Analyse](http://redirect.sonarsource.com/doc/install-configure-scanner-tfs-ts.html) durchzuführen, nachdem Sie die Ziele im Feld **Ziele** ausgeführt haben. Das Ziel **Installieren** oder **Paketieren** sollte zuerst ausgeführt werden. Sie müssen der Buildpipeline vor dieser Maven-Aufgabe außerdem eine Aufgabe **Analysekonfiguration vorbereiten** aus einer der Erweiterungen hinzufügen.",
"loc.input.label.sqMavenPluginVersionChoice": "SonarQube Scanner for Maven-Version",
"loc.input.help.sqMavenPluginVersionChoice": "Die zu verwendende Version für das SonarQube-Maven-Plug-In. Sie können die aktuelle Version oder die Version in Ihrer \"pom.xml\" verwenden.",
"loc.input.label.checkstyleAnalysisEnabled": "Checkstyle ausführen",
"loc.input.help.checkstyleAnalysisEnabled": "Führen Sie das Checkstyle-Tool mit den Sun-Standardüberprüfungen aus. Die Ergebnisse werden als Buildartefakte hochgeladen.",
"loc.input.label.pmdAnalysisEnabled": "PMD ausführen",
"loc.input.help.pmdAnalysisEnabled": "Verwenden Sie das statische PMD-Analysetool, um Fehler im Code zu ermitteln. Ergebnisse werden als Buildartefakte hochgeladen.",
"loc.input.label.findbugsAnalysisEnabled": "FindBugs ausführen",
"loc.input.help.findbugsAnalysisEnabled": "Verwenden Sie das statische FindBugs-Analysetool, um Fehler im Code zu ermitteln. Ergebnisse werden als Buildartefakte hochgeladen.",
"loc.input.label.spotBugsAnalysisEnabled": "Ausführen der SpotBugs-Analyse",
"loc.input.help.spotBugsAnalysisEnabled": "Aktivieren Sie diese Option, um das SpotBugs-Codeanalyse-Plug-In auszuführen. [Weitere Informationen](https://spotbugs.github.io/spotbugs-maven-plugin)",
"loc.input.label.spotBugsMavenPluginVersion": "Versionsnummer",
"loc.input.help.spotBugsMavenPluginVersion": "Alle verfügbaren Versionen finden Sie unter https://mvnrepository.com/artifact/com.github.spotbugs/spotbugs-maven-plugin.",
"loc.input.label.spotBugsGoal": "Das Ziel für das Spotbugs-Plug-In",
"loc.input.help.spotBugsGoal": "Wählen Sie das Ziel des Plug-Ins aus. Eine ausführlichere Beschreibung finden Sie unter https://spotbugs.readthedocs.io/en/stable/maven.html#goals-of-spotbugs-maven-plugin.",
"loc.input.label.spotBugsFailWhenBugsFound": "Fehler, wenn Fehler mit spotbugs:check gefunden werden",
"loc.input.help.spotBugsFailWhenBugsFound": "Fehler, wenn die Fehler bei der Überprüfung des Ziels gefunden wurde. Eine ausführlichere Beschreibung finden Sie unter https://spotbugs.github.io/spotbugs-maven-plugin/check-mojo.html#failonerror.",
"loc.messages.sqCommon_CreateTaskReport_MissingField": "Fehler beim Erstellen des TaskReport-Objekts. Fehlendes Feld: %s",
"loc.messages.sqCommon_WaitingForAnalysis": "Warten, dass der SonarQube-Server den Build analysiert.",
"loc.messages.sqCommon_NotWaitingForAnalysis": "Der Build ist nicht für das Warten auf die SonarQube-Analyse konfiguriert. Der ausführliche Quality Gate-Status ist nicht verfügbar.",
"loc.messages.sqCommon_QualityGateStatusUnknown": "Der Quality Gate-Status wurde nicht erkannt, oder es wurde ein neuer Status eingeführt.",
"loc.messages.sqCommon_InvalidResponseFromServer": "Der Server hat mit einem ungültigen oder unerwarteten Antwortformat geantwortet.",
"loc.messages.codeAnalysis_ToolIsEnabled": "Die %s-Analyse ist aktiviert.",
"loc.messages.codeAnalysis_ToolFailed": "Fehler bei der %s-Analyse.",
"loc.messages.sqAnalysis_IncrementalMode": "Ein PR-Build wurde erkannt. Die SonarQube-Analyse wird im inkrementellen Modus ausgeführt.",
"loc.messages.sqAnalysis_BuildSummaryTitle": "SonarQube-Analysebericht",
"loc.messages.sqAnalysis_TaskReportInvalid": "Ungültiger oder fehlender Aufgabenbericht. Überprüfen Sie, ob SonarQube erfolgreich abgeschlossen wurde.",
"loc.messages.sqAnalysis_BuildSummary_LinkText": "Ausführlicher SonarQube-Bericht",
"loc.messages.sqAnalysis_BuildSummary_CannotAuthenticate": "Authentifizierung beim SonarQube-Server nicht möglich. Überprüfen Sie die gespeicherten Dienstverbindungsdetails und den Status des Servers.",
"loc.messages.sqAnalysis_AnalysisTimeout": "Die Analyse wurde nicht in der vorgesehenen Zeit von %d Sekunden abgeschlossen.",
"loc.messages.sqAnalysis_IsPullRequest_SkippingBuildSummary": "Pull Request-Build: Eine ausführliche SonarQube-Buildzusammenfassung ist nicht verfügbar.",
"loc.messages.sqAnalysis_IsPullRequest_SkippingBuildBreaker": "Pull Request-Build: Der Build wird bei einem Quality Gate-Fehler nicht beeinträchtigt.",
"loc.messages.sqAnalysis_BuildBrokenDueToQualityGateFailure": "Fehler des diesem Build zugeordneten SonarQube Quality Gates.",
"loc.messages.sqAnalysis_QualityGatePassed": "Das diesem Build zugeordnete SonarQube Quality Gate hat bestanden (Status %s).",
"loc.messages.sqAnalysis_UnknownComparatorString": "Problem bei der SonarQube-Buildzusammenfassung: unbekannter Vergleichsoperator „%s“",
"loc.messages.sqAnalysis_NoUnitsFound": "Die Liste der SonarQube-Maßeinheiten konnte nicht vom Server abgerufen werden.",
"loc.messages.sqAnalysis_NoReportTask": "„report-task.txt“ wurde nicht gefunden. Mögliche Ursache: Die SonarQube-Analyse wurde nicht erfolgreich abgeschlossen.",
"loc.messages.sqAnalysis_MultipleReportTasks": "Es wurden mehrere Dateien „report-task.txt“ gefunden. Die erste wird ausgewählt. Die Buildzusammenfassung und der Build Breaker sind möglicherweise nicht genau. Mögliche Ursache: mehrere SonarQube-Analysen im selben Build, dies wird nicht unterstützt.",
"loc.messages.codeAnalysisBuildSummaryLine_SomeViolationsSomeFiles": "%s hat %d Verstöße in %d Dateien gefunden.",
"loc.messages.codeAnalysisBuildSummaryLine_SomeViolationsOneFile": "%s hat %d Verstöße in einer Datei gefunden.",
"loc.messages.codeAnalysisBuildSummaryLine_OneViolationOneFile": "%s hat einen Verstoß in einer Datei gefunden.",
"loc.messages.codeAnalysisBuildSummaryLine_NoViolations": "%s hat keine Verstöße gefunden.",
"loc.messages.codeAnalysisBuildSummaryTitle": "Code Analysis-Bericht",
"loc.messages.codeAnalysisArtifactSummaryTitle": "Code Analysis-Ergebnisse",
"loc.messages.codeAnalysisDisabled": "Die Codeanalyse ist außerhalb der Buildumgebung deaktiviert. Es konnte kein Wert gefunden werden für: %s",
"loc.messages.LocateJVMBasedOnVersionAndArch": "JAVA_HOME für Java %s %s finden",
"loc.messages.UnsupportedJdkWarning": "JDK 9 und JDK 10 werden nicht unterstützt. Wechseln Sie in Ihrem Projekt und Ihrer Pipeline zu einer neueren Version. Es wird versucht, die Erstellung mit JDK 11 durchzuführen...",
"loc.messages.FailedToLocateSpecifiedJVM": "Die angegebene JDK-Version wurde nicht gefunden. Stellen Sie sicher, dass die angegebene JDK-Version auf dem Agent installiert und die Umgebungsvariable „%s“ vorhanden und auf den Speicherort eines entsprechenden JDK festgelegt ist. Sie können auch die Aufgabe [Installer für Java-Tools](https://go.microsoft.com/fwlink/?linkid=875287) verwenden, um das gewünschte JDK zu installieren.",
"loc.messages.EntryAlreadyExists": "Die Einstellungen für den Feed oder das Repository sind in der XML-Datei bereits vorhanden.",
"loc.messages.EffectivePomInvalid": "Effektives POM konnte nicht analysiert werden.",
"loc.messages.AuthenticationNotNecessary": "Es wurden keine Artefaktfeeds gefunden, die eine Authentifizierung erfordern. Deaktivieren Sie \"Authentifizieren mit Artefaktfeeds\", um Builds zu beschleunigen.",
"loc.messages.UsingAuthFeed": "Artefaktfeed verwenden: ",
"loc.messages.NoTestResults": "Es wurden keine Testergebnisdateien gefunden, die mit %s übereinstimmen. Das Veröffentlichen von JUnit-Testergebnissen wird daher übersprungen."
}
Loading