[MARTIFACT-33] store groupId in buildinfo to compare
diff --git a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/BuildInfoWriter.java b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/BuildInfoWriter.java
index 5fe3348..6c09395 100644
--- a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/BuildInfoWriter.java
+++ b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/BuildInfoWriter.java
@@ -174,7 +174,11 @@
         pomArtifact.setFile(project.getFile());
 
         artifacts.put(pomArtifact, prefix + n);
-        printFile(prefix + n++, project.getFile(), project.getArtifactId() + '-' + project.getVersion() + ".pom");
+        printFile(
+                prefix + n++,
+                pomArtifact.getGroupId(),
+                project.getFile(),
+                project.getArtifactId() + '-' + project.getVersion() + ".pom");
 
         if (project.getArtifact() == null) {
             return;
@@ -218,7 +222,7 @@
             return;
         }
 
-        printFile(prefix, artifact.getFile(), getArtifactFilename(artifact));
+        printFile(prefix, artifact.getGroupId(), artifact.getFile(), getArtifactFilename(artifact));
         artifacts.put(artifact, prefix);
     }
 
@@ -241,12 +245,13 @@
         return path.toString();
     }
 
-    void printFile(String prefix, File file) throws MojoExecutionException {
-        printFile(prefix, file, file.getName());
+    void printFile(String prefix, String groupId, File file) throws MojoExecutionException {
+        printFile(prefix, groupId, file, file.getName());
     }
 
-    private void printFile(String prefix, File file, String filename) throws MojoExecutionException {
+    private void printFile(String prefix, String groupId, File file, String filename) throws MojoExecutionException {
         p.println();
+        p.println(prefix + ".groupId=" + groupId);
         p.println(prefix + ".filename=" + filename);
         p.println(prefix + ".length=" + file.length());
         try (InputStream is = Files.newInputStream(file.toPath())) {
diff --git a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
index 03df3ad..156e2d0 100644
--- a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
+++ b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/CompareMojo.java
@@ -237,9 +237,10 @@
         String actualLength = (String) actual.remove(prefix + ".length");
         String actualSha512 = (String) actual.remove(prefix + ".checksums.sha512");
 
-        String referencePrefix = findPrefix(reference, actualFilename);
+        String referencePrefix = findPrefix(reference, artifact.getGroupId(), actualFilename);
         String referenceLength = (String) reference.remove(referencePrefix + ".length");
         String referenceSha512 = (String) reference.remove(referencePrefix + ".checksums.sha512");
+        reference.remove(referencePrefix + ".groupId");
 
         String issue = null;
         if (!actualLength.equals(referenceLength)) {
@@ -282,11 +283,14 @@
         return path.substring(length + 1);
     }
 
-    private static String findPrefix(Properties reference, String actualFilename) {
+    private static String findPrefix(Properties reference, String actualGroupId, String actualFilename) {
         for (String name : reference.stringPropertyNames()) {
             if (name.endsWith(".filename") && actualFilename.equals(reference.getProperty(name))) {
-                reference.remove(name);
-                return name.substring(0, name.length() - ".filename".length());
+                String prefix = name.substring(0, name.length() - ".filename".length());
+                if (actualGroupId.equals(reference.getProperty(prefix + ".groupId"))) {
+                    reference.remove(name);
+                    return prefix;
+                }
             }
         }
         return null;
diff --git a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java
index 37aa2a0..1f8776a 100644
--- a/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java
+++ b/src/main/java/org/apache/maven/plugins/artifact/buildinfo/ReferenceBuildinfoUtil.java
@@ -193,7 +193,7 @@
                     String prefix = entry.getValue();
                     File referenceFile = referenceArtifacts.get(artifact);
                     if (referenceFile != null) {
-                        bi.printFile(prefix, referenceFile);
+                        bi.printFile(prefix, artifact.getGroupId(), referenceFile);
                     }
                 }