Skip to content

Commit 245cf9d

Browse files
committed
Add generated classes and resources in order
This helps with the reproducible builds.
1 parent bc6774c commit 245cf9d

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

core/deployment/src/main/java/io/quarkus/deployment/pkg/steps/JarResultBuildStep.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -669,16 +669,20 @@ private JarBuildItem buildThinJar(CurateOutcomeBuildItem curateOutcomeBuildItem,
669669
Path generatedZip = quarkus.resolve(GENERATED_BYTECODE_JAR);
670670
fastJarJarsBuilder.setGenerated(generatedZip);
671671
try (FileSystem out = createNewReproducibleZipFileSystem(generatedZip, packageConfig)) {
672-
for (GeneratedClassBuildItem i : generatedClasses) {
673-
String fileName = fromClassNameToResourceName(i.getName());
672+
// make sure we write the elements in order
673+
for (GeneratedClassBuildItem i : generatedClasses.stream()
674+
.sorted(Comparator.comparing(GeneratedClassBuildItem::binaryName)).toList()) {
675+
String fileName = fromClassNameToResourceName(i.internalName());
674676
Path target = out.getPath(fileName);
675677
if (target.getParent() != null) {
676678
Files.createDirectories(target.getParent());
677679
}
678680
Files.write(target, i.getClassData());
679681
}
680682

681-
for (GeneratedResourceBuildItem i : generatedResources) {
683+
// make sure we write the elements in order
684+
for (GeneratedResourceBuildItem i : generatedResources.stream()
685+
.sorted(Comparator.comparing(GeneratedResourceBuildItem::getName)).toList()) {
682686
Path target = out.getPath(i.getName());
683687
if (target.getParent() != null) {
684688
Files.createDirectories(target.getParent());

0 commit comments

Comments
 (0)