From d87b0590b07b6580156ed69f27fb6a09df260366 Mon Sep 17 00:00:00 2001 From: Pavel Glinskiy Date: Mon, 29 Sep 2025 17:02:26 +0300 Subject: [PATCH] Maven Plugin --- .idea/.gitignore | 8 +++ .idea/encodings.xml | 9 ++++ .idea/misc.xml | 15 ++++++ .idea/vcs.xml | 6 +++ .scannerwork/.sonar_lock | 0 .scannerwork/report-task.txt | 6 +++ EmptyProject/pom.xml | 35 +++++++++++++ MavenPlugin/pom.xml | 49 +++++++++++++++++-- .../java/org/plugin/DevelopersInfoMojo.java | 36 ++++++++++++++ .../src/main/java/org/plugin/Main.java | 7 --- sonar-project.properties | 7 +++ 11 files changed, 168 insertions(+), 10 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/vcs.xml create mode 100644 .scannerwork/.sonar_lock create mode 100644 .scannerwork/report-task.txt create mode 100644 MavenPlugin/src/main/java/org/plugin/DevelopersInfoMojo.java delete mode 100644 MavenPlugin/src/main/java/org/plugin/Main.java create mode 100644 sonar-project.properties diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..fa3d7fb --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..56c12c9 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.scannerwork/.sonar_lock b/.scannerwork/.sonar_lock new file mode 100644 index 0000000..e69de29 diff --git a/.scannerwork/report-task.txt b/.scannerwork/report-task.txt new file mode 100644 index 0000000..f5d0ba4 --- /dev/null +++ b/.scannerwork/report-task.txt @@ -0,0 +1,6 @@ +projectKey=my_project_key +serverUrl=http://localhost:9000 +serverVersion=9.9.8.100196 +dashboardUrl=http://localhost:9000/dashboard?id=my_project_key +ceTaskId=AZmVY8kgt2VQnP3E6_zl +ceTaskUrl=http://localhost:9000/api/ce/task?id=AZmVY8kgt2VQnP3E6_zl diff --git a/EmptyProject/pom.xml b/EmptyProject/pom.xml index 0b30830..f179844 100644 --- a/EmptyProject/pom.xml +++ b/EmptyProject/pom.xml @@ -14,4 +14,39 @@ UTF-8 + + + dev1 + User1 + test1@email.com + Test1Org + + + dev2 + User2 + test2@email.com + Test2Org + + + + + + + org.plugin + MavenPlugin + 1.0-SNAPSHOT + + + show-developers-on-validate + validate + + show-developers + + + + + + + + \ No newline at end of file diff --git a/MavenPlugin/pom.xml b/MavenPlugin/pom.xml index 9f5cd58..0d24d4e 100644 --- a/MavenPlugin/pom.xml +++ b/MavenPlugin/pom.xml @@ -1,12 +1,14 @@ - + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 + https://maven.apache.org/xsd/maven-4.0.0.xsd"> + 4.0.0 org.plugin MavenPlugin 1.0-SNAPSHOT + maven-plugin 17 @@ -14,4 +16,45 @@ UTF-8 - \ No newline at end of file + + + org.apache.maven + maven-plugin-api + 3.9.6 + + + org.apache.maven.plugin-tools + maven-plugin-annotations + 3.11.0 + provided + + + org.apache.maven + maven-core + 3.9.6 + provided + + + + + + + org.apache.maven.plugins + maven-plugin-plugin + 3.11.0 + + developers + + + + default-descriptor + + descriptor + + + + + + + + diff --git a/MavenPlugin/src/main/java/org/plugin/DevelopersInfoMojo.java b/MavenPlugin/src/main/java/org/plugin/DevelopersInfoMojo.java new file mode 100644 index 0000000..fc6640e --- /dev/null +++ b/MavenPlugin/src/main/java/org/plugin/DevelopersInfoMojo.java @@ -0,0 +1,36 @@ +package org.plugin; + +import org.apache.maven.plugin.AbstractMojo; +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.plugins.annotations.Mojo; +import org.apache.maven.plugins.annotations.Parameter; +import org.apache.maven.project.MavenProject; +import org.apache.maven.model.Developer; + +import java.util.List; + +@Mojo(name = "show-developers") +public class DevelopersInfoMojo extends AbstractMojo { + + @Parameter(defaultValue = "${project}", readonly = true, required = true) + private MavenProject project; + + @Override + public void execute() throws MojoExecutionException { + List developers = project.getDevelopers(); + + if (developers == null || developers.isEmpty()) { + getLog().info("No developers defined in pom.xml"); + return; + } + + getLog().info("=== Developers Info ==="); + for (Developer dev : developers) { + getLog().info("ID: " + dev.getId()); + getLog().info("Name: " + dev.getName()); + getLog().info("Email: " + dev.getEmail()); + getLog().info("Organization: " + dev.getOrganization()); + getLog().info("-----------------------"); + } + } +} diff --git a/MavenPlugin/src/main/java/org/plugin/Main.java b/MavenPlugin/src/main/java/org/plugin/Main.java deleted file mode 100644 index 407f157..0000000 --- a/MavenPlugin/src/main/java/org/plugin/Main.java +++ /dev/null @@ -1,7 +0,0 @@ -package org.example; - -public class Main { - public static void main(String[] args) { - System.out.println("Hello world!"); - } -} \ No newline at end of file diff --git a/sonar-project.properties b/sonar-project.properties new file mode 100644 index 0000000..def1b7a --- /dev/null +++ b/sonar-project.properties @@ -0,0 +1,7 @@ +sonar.projectKey=my_project_key +sonar.projectName=My Project +sonar.projectVersion=1.0 +sonar.sources=EmptyProject/src/main/java, MavenPlugin/src/main/java +sonar.java.binaries=EmptyProject/target/classes, MavenPlugin/target/classes +sonar.host.url=http://localhost:9000 +sonar.login=squ_0dc5361ec722f7562baba02ae4788995e731f2a1 \ No newline at end of file