These are based on 2.3.0.M4, both apps just simple projects from initializer, where demo1 is maven build and demo2 gradle build. With gradle, embedded classpath.idxfile has wrong permissions, so CF push fails:

jvalkealahti@cypher:~/Downloads$ ls demo1/target/demo1-0.0.1-SNAPSHOT.jar
demo1/target/demo1-0.0.1-SNAPSHOT.jar

jvalkealahti@cypher:~/Downloads$ ls demo2/build/libs/demo2-0.0.1-SNAPSHOT.jar 
demo2/build/libs/demo2-0.0.1-SNAPSHOT.jar

# unzipped those files

jvalkealahti@cypher:~/Downloads$ ls -lt demo1/target/BOOT-INF/classpath.idx 
-rw-r--r-- 1 jvalkealahti jvalkealahti 519 Apr 12 14:01 demo1/target/BOOT-INF/classpath.idx

jvalkealahti@cypher:~/Downloads$ ls -lt demo2/build/libs/BOOT-INF/classpath.idx 
---------- 1 jvalkealahti jvalkealahti 519 Feb  1  1980 demo2/build/libs/BOOT-INF/classpath.idx

This will then at least with CF push causing error:

FAILED
Error processing app files: Error processing app files in 'demo2-0.0.1-SNAPSHOT.jar': open /tmp/unzipped-app739748771/BOOT-INF/classpath.idx: permission denied

Comment From: scottfrederick

I can't re-create the issue with the file permissions on classpath.idx with the Gradle plugin. I'll look into that more.

But I did notice in your example, and with further testing, that the Maven and Gradle plugins apply different timestamps to directories and files, in cases where the plugins are adding files to the archive.

With Maven, a redacted list of jar contents looks like this:

     0 Mon Apr 13 11:24:24 CDT 2020 META-INF/
   572 Mon Apr 13 11:24:24 CDT 2020 META-INF/MANIFEST.MF
# current date/time on directories added to root for loader classes
     0 Mon Apr 13 11:24:24 CDT 2020 org/
     0 Mon Apr 13 11:24:24 CDT 2020 org/springframework/
     0 Mon Apr 13 11:24:24 CDT 2020 org/springframework/boot/
     0 Mon Apr 13 11:24:24 CDT 2020 org/springframework/boot/loader/
# Feb 01 1980 on files added to root for loader classes
  5303 Fri Feb 01 00:00:00 CST 1980 org/springframework/boot/loader/ClassPathIndexFile.class
     0 Mon Apr 13 11:24:24 CDT 2020 BOOT-INF/
     0 Mon Apr 13 11:24:24 CDT 2020 BOOT-INF/classes/
     0 Mon Apr 13 11:24:20 CDT 2020 BOOT-INF/classes/com/
     0 Mon Apr 13 11:24:20 CDT 2020 BOOT-INF/classes/com/example/
     0 Mon Apr 13 11:24:20 CDT 2020 BOOT-INF/classes/com/example/test/
   838 Mon Apr 13 11:24:20 CDT 2020 BOOT-INF/classes/com/example/test/TestApplication.class
     1 Mon Apr 13 11:24:20 CDT 2020 BOOT-INF/classes/application.properties
# Feb 01 1980 on files added to BOOT-INF/lib
 30287 Fri Feb 01 00:00:00 CST 1980 BOOT-INF/lib/spring-boot-jarmode-layertools-2.3.0.M4.jar
# current date on index files added to BOOT-INF
  1237 Mon Apr 13 11:24:24 CDT 2020 BOOT-INF/classpath.idx
  7849 Mon Apr 13 11:24:24 CDT 2020 BOOT-INF/layers.idx

With Gradle it looks like this:

     0 Mon Apr 13 10:01:18 CDT 2020 META-INF/
   377 Mon Apr 13 10:01:18 CDT 2020 META-INF/MANIFEST.MF
# Feb 01 1980 on directories and files added to root for loader classes
     0 Fri Feb 01 00:00:00 CST 1980 org/
     0 Fri Feb 01 00:00:00 CST 1980 org/springframework/
     0 Fri Feb 01 00:00:00 CST 1980 org/springframework/boot/
     0 Fri Feb 01 00:00:00 CST 1980 org/springframework/boot/loader/
  5303 Fri Feb 01 00:00:00 CST 1980 org/springframework/boot/loader/ClassPathIndexFile.class
     0 Mon Apr 13 10:01:18 CDT 2020 BOOT-INF/
     0 Mon Apr 13 10:01:18 CDT 2020 BOOT-INF/classes/
     0 Mon Apr 13 10:01:16 CDT 2020 BOOT-INF/classes/com/
     0 Mon Apr 13 10:01:16 CDT 2020 BOOT-INF/classes/com/example/
     0 Mon Apr 13 10:01:16 CDT 2020 BOOT-INF/classes/com/example/test/
   838 Mon Apr 13 10:01:16 CDT 2020 BOOT-INF/classes/com/example/test/TestApplication.class
     1 Mon Apr 13 10:01:16 CDT 2020 BOOT-INF/classes/application.properties
# Jan 31 1980 on directories and files added to BOOT-INF
 30287 Thu Jan 31 18:00:00 CST 1980 BOOT-INF/lib/spring-boot-jarmode-layertools-2.3.0.M4.jar
   996 Thu Jan 31 18:00:00 CST 1980 BOOT-INF/classpath.idx
  7339 Thu Jan 31 18:00:00 CST 1980 BOOT-INF/layers.idx

This inconsistency seems like something we need to address, and could be related to permissions.

Comment From: jvalkeal

I'm on linux so maybe in this particular case there's some differences for default file flags vs macos and win. Also I don't seem to get that layertools jar or layers.idx:

        0  2020-04-12 14:02   BOOT-INF/
        0  2020-04-12 14:02   BOOT-INF/classes/
        0  2020-04-12 14:02   BOOT-INF/classes/com/
        0  2020-04-12 14:02   BOOT-INF/classes/com/example/
        0  2020-04-12 14:02   BOOT-INF/classes/com/example/demo2/
      738  2020-04-12 14:02   BOOT-INF/classes/com/example/demo2/Demo2Application.class
        1  2020-04-12 14:02   BOOT-INF/classes/application.properties
        0  2020-04-12 14:02   BOOT-INF/lib/
  1432246  2020-04-04 10:36   BOOT-INF/lib/spring-boot-autoconfigure-2.3.0.M4.jar
  1076155  2020-04-04 10:36   BOOT-INF/lib/spring-boot-2.3.0.M4.jar
     4743  2020-04-04 10:36   BOOT-INF/lib/spring-boot-starter-logging-2.3.0.M4.jar
     4748  2020-04-04 10:36   BOOT-INF/lib/spring-boot-starter-2.3.0.M4.jar
    25058  2019-09-22 07:59   BOOT-INF/lib/jakarta.annotation-api-1.3.5.jar
  1227620  2020-04-04 10:36   BOOT-INF/lib/spring-context-5.2.5.RELEASE.jar
   372325  2020-04-04 10:36   BOOT-INF/lib/spring-aop-5.2.5.RELEASE.jar
   685311  2020-04-04 10:36   BOOT-INF/lib/spring-beans-5.2.5.RELEASE.jar
   282183  2020-04-04 10:36   BOOT-INF/lib/spring-expression-5.2.5.RELEASE.jar
  1440907  2020-04-04 10:24   BOOT-INF/lib/spring-core-5.2.5.RELEASE.jar
   309001  2020-04-04 10:36   BOOT-INF/lib/snakeyaml-1.26.jar
    17463  2020-04-04 10:36   BOOT-INF/lib/log4j-to-slf4j-2.13.1.jar
   290339  2019-03-10 17:44   BOOT-INF/lib/logback-classic-1.2.3.jar
   471901  2019-03-10 17:44   BOOT-INF/lib/logback-core-1.2.3.jar
     4592  2020-01-25 13:22   BOOT-INF/lib/jul-to-slf4j-1.7.30.jar
    41472  2020-01-25 13:22   BOOT-INF/lib/slf4j-api-1.7.30.jar
    23961  2020-04-04 10:24   BOOT-INF/lib/spring-jcl-5.2.5.RELEASE.jar
   292244  2020-04-04 10:36   BOOT-INF/lib/log4j-api-2.13.1.jar
      519  1980-02-01 00:00   BOOT-INF/classpath.idx

Comment From: philwebb

@jvalkeal can you share the project?

Comment From: jvalkeal

It's a mostly simplest gradle project you can get out from start.spring.io. Simplest app would eventually fail as there's no web layer but issue was about pushing an app.

However I just noticed that it works if you do:

cf push demo2 -p build/libs/demo2-0.0.1-SNAPSHOT.jar

But error I mentioned happens if you use manifest to push an app.

cat demo-manifest.yml 
---
applications:
  - name: demo2
    host: demo2
    memory: 1G
    disk_quota: 1G
    instances: 1
    path: build/libs/demo2-0.0.1-SNAPSHOT.jar
$ cf push -f demo-manifest.yml
Pushing from manifest to org scdf-ci / space space-janne as <removed>...
Using manifest file /home/jvalkealahti/Downloads/demo2/demo-manifest.yml


Deprecation warning: Route component attributes 'domain', 'domains', 'host', 'hosts' and 'no-hostname' are deprecated. Found: host.
Please see https://docs.cloudfoundry.org/devguide/deploy-apps/manifest-attributes.html#deprecated for the currently supported syntax and other app manifest deprecations. This feature will be removed in the future.


Using manifest file demo-manifest.yml

Updating app demo2 in org scdf-ci / space space-janne as <removed>...
OK

Using route demo2.cfapps.io
FAILED
Error processing app files: Error processing app files in 'build/libs/demo2-0.0.1-SNAPSHOT.jar': open /tmp/unzipped-app533390060/BOOT-INF/classpath.idx: permission denied

Not using manifest somehow works differently:

$ cf push demo2 -p build/libs/demo2-0.0.1-SNAPSHOT.jar
Pushing app demo2 to org scdf-ci / space space-janne as <removed>...
Getting app info...
Creating app with these attributes...
+ name:       demo2
  path:       /home/jvalkealahti/Downloads/demo2/build/libs/demo2-0.0.1-SNAPSHOT.jar
  routes:
+   demo2.cfapps.io

Creating app demo2...
Mapping routes...
Comparing local files to remote cache...
Packaging files to upload...
Uploading files...
 219.82 KiB / 219.82 KiB [===========================================================================================================] 100.00% 2s

Waiting for API to complete processing files...

Staging app and tracing logs...
   Downloading web_config_transform_buildpack...
   Downloading dotnet_core_buildpack...
   Downloading python_buildpack...
   Downloading staticfile_buildpack...
   Downloading java_buildpack...
   Downloaded python_buildpack
   Downloading nodejs_buildpack...
   Downloaded java_buildpack
   Downloading go_buildpack...
   Downloaded dotnet_core_buildpack
   Downloaded web_config_transform_buildpack
   Downloading ruby_buildpack...
   Downloading binary_buildpack...
   Downloaded ruby_buildpack
   Downloading dotnet_core_buildpack_beta...
   Downloaded binary_buildpack
   Downloading php_buildpack...
   Downloaded nodejs_buildpack
   Downloaded go_buildpack
   Downloaded dotnet_core_buildpack_beta
   Downloaded php_buildpack
   Downloaded staticfile_buildpack
   Cell 48a1dad0-0bbb-45e4-8a7b-db133df48532 creating container for instance 507aed1e-59db-4d75-802f-e423d1570704
   Cell 48a1dad0-0bbb-45e4-8a7b-db133df48532 successfully created container for instance 507aed1e-59db-4d75-802f-e423d1570704
   Downloading app package...
   Downloaded app package (6.8M)
   -----> Java Buildpack v4.29.1 (offline) | https://github.com/cloudfoundry/java-buildpack.git#864477c
   -----> Downloading Jvmkill Agent 1.16.0_RELEASE from https://java-buildpack.cloudfoundry.org/jvmkill/bionic/x86_64/jvmkill-1.16.0-RELEASE.so (found in cache)
   -----> Downloading Open Jdk JRE 1.8.0_242 from https://java-buildpack.cloudfoundry.org/openjdk/bionic/x86_64/openjdk-jre-1.8.0_242-bionic.tar.gz (found in cache)
          Expanding Open Jdk JRE to .java-buildpack/open_jdk_jre (1.1s)
          JVM DNS caching disabled in lieu of BOSH DNS caching
   -----> Downloading Open JDK Like Memory Calculator 3.13.0_RELEASE from https://java-buildpack.cloudfoundry.org/memory-calculator/bionic/x86_64/memory-calculator-3.13.0-RELEASE.tar.gz (found in cache)
          Loaded Classes: 10057, Threads: 250
   -----> Downloading Client Certificate Mapper 1.11.0_RELEASE from https://java-buildpack.cloudfoundry.org/client-certificate-mapper/client-certificate-mapper-1.11.0-RELEASE.jar (found in cache)
   -----> Downloading Container Security Provider 1.16.0_RELEASE from https://java-buildpack.cloudfoundry.org/container-security-provider/container-security-provider-1.16.0-RELEASE.jar (found in cache)
   -----> Downloading Spring Auto Reconfiguration 2.11.0_RELEASE from https://java-buildpack.cloudfoundry.org/auto-reconfiguration/auto-reconfiguration-2.11.0-RELEASE.jar (found in cache)
   Exit status 0
   Uploading droplet, build artifacts cache...
   Uploading droplet...
   Uploading build artifacts cache...
   Uploaded build artifacts cache (128B)
   Uploaded droplet (49M)
   Uploading complete
   Cell 48a1dad0-0bbb-45e4-8a7b-db133df48532 stopping instance 507aed1e-59db-4d75-802f-e423d1570704
   Cell 48a1dad0-0bbb-45e4-8a7b-db133df48532 destroying container for instance 507aed1e-59db-4d75-802f-e423d1570704
   Cell 48a1dad0-0bbb-45e4-8a7b-db133df48532 successfully destroyed container for instance 507aed1e-59db-4d75-802f-e423d1570704

Waiting for app to start...
Start unsuccessful

Comment From: jvalkeal

Behaviour may also be different depending on which OS you're on(I'm on linux) and who/how that jar archive is opened. At least in my system this is what zipinfo shows:

$ zipinfo build/libs/demo2-0.0.1-SNAPSHOT.jar 
Archive:  build/libs/demo2-0.0.1-SNAPSHOT.jar
Zip file size: 8119286 bytes, number of entries: 100
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-17 09:53 META-INF/
-rw-r--r--  2.0 unx      287 bl defN 20-Apr-17 09:53 META-INF/MANIFEST.MF
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/boot/
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/
-rw-r--r--  2.0 unx     5303 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/ClassPathIndexFile.class
-rw-r--r--  2.0 unx     6806 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/ExecutableArchiveLauncher.class
-rw-r--r--  2.0 unx     3966 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/JarLauncher.class
-rw-r--r--  2.0 unx     1535 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/LaunchedURLClassLoader$UseFastConnectionExceptionsEnumeration.class
-rw-r--r--  2.0 unx     7704 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/LaunchedURLClassLoader.class
-rw-r--r--  2.0 unx     5908 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/Launcher.class
-rw-r--r--  2.0 unx     1536 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/MainMethodRunner.class
-rw-r--r--  2.0 unx      266 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher$1.class
-rw-r--r--  2.0 unx     1484 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher$ArchiveEntryFilter.class
-rw-r--r--  2.0 unx     1953 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher$PrefixMatchingArchiveFilter.class
-rw-r--r--  2.0 unx    21531 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher.class
-rw-r--r--  2.0 unx     1750 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/WarLauncher.class
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/
-rw-r--r--  2.0 unx      302 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/Archive$Entry.class
-rw-r--r--  2.0 unx      511 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/Archive$EntryFilter.class
-rw-r--r--  2.0 unx     3679 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/Archive.class
-rw-r--r--  2.0 unx     6093 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$AbstractIterator.class
-rw-r--r--  2.0 unx     2180 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$ArchiveIterator.class
-rw-r--r--  2.0 unx     1857 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$EntryIterator.class
-rw-r--r--  2.0 unx     1269 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$FileEntry.class
-rw-r--r--  2.0 unx     2443 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$SimpleJarFileArchive.class
-rw-r--r--  2.0 unx     5259 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive.class
-rw-r--r--  2.0 unx     2884 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$AbstractIterator.class
-rw-r--r--  2.0 unx     1981 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$EntryIterator.class
-rw-r--r--  2.0 unx     1081 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$JarFileEntry.class
-rw-r--r--  2.0 unx     2528 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$NestedArchiveIterator.class
-rw-r--r--  2.0 unx     7467 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive.class
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/
-rw-r--r--  2.0 unx      485 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessData.class
-rw-r--r--  2.0 unx      282 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile$1.class
-rw-r--r--  2.0 unx     2680 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile$DataInputStream.class
-rw-r--r--  2.0 unx     3259 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile$FileAccess.class
-rw-r--r--  2.0 unx     4015 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile.class
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/
-rw-r--r--  2.0 unx     4976 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/AsciiBytes.class
-rw-r--r--  2.0 unx      616 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/Bytes.class
-rw-r--r--  2.0 unx      295 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord$1.class
-rw-r--r--  2.0 unx     3401 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord$Zip64End.class
-rw-r--r--  2.0 unx     2004 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord$Zip64Locator.class
-rw-r--r--  2.0 unx     4682 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord.class
-rw-r--r--  2.0 unx     6223 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryFileHeader.class
-rw-r--r--  2.0 unx     4620 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryParser.class
-rw-r--r--  2.0 unx      540 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryVisitor.class
-rw-r--r--  2.0 unx      345 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/FileHeader.class
-rw-r--r--  2.0 unx    11492 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/Handler.class
-rw-r--r--  2.0 unx     3697 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarEntry.class
-rw-r--r--  2.0 unx      299 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarEntryFilter.class
-rw-r--r--  2.0 unx     2296 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile$1.class
-rw-r--r--  2.0 unx     1233 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile$2.class
-rw-r--r--  2.0 unx     1374 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile$JarFileType.class
-rw-r--r--  2.0 unx    15603 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile.class
-rw-r--r--  2.0 unx     1593 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFileEntries$1.class
-rw-r--r--  2.0 unx     2046 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFileEntries$EntryIterator.class
-rw-r--r--  2.0 unx    13994 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFileEntries.class
-rw-r--r--  2.0 unx      702 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$1.class
-rw-r--r--  2.0 unx     1250 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$2.class
-rw-r--r--  2.0 unx      410 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$CloseAction.class
-rw-r--r--  2.0 unx     4302 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$JarEntryName.class
-rw-r--r--  2.0 unx    11523 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection.class
-rw-r--r--  2.0 unx     3650 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/StringSequence.class
-rw-r--r--  2.0 unx     1813 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/ZipInflaterInputStream.class
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jarmode/
-rw-r--r--  2.0 unx      293 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jarmode/JarMode.class
-rw-r--r--  2.0 unx     2201 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jarmode/JarModeLauncher.class
-rw-r--r--  2.0 unx     1292 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jarmode/TestJarMode.class
drwxr-xr-x  2.0 unx        0 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/util/
-rw-r--r--  2.0 unx     5174 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/util/SystemPropertyUtils.class
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-17 09:53 BOOT-INF/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-17 09:53 BOOT-INF/classes/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-17 09:53 BOOT-INF/classes/com/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-17 09:53 BOOT-INF/classes/com/example/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-17 09:53 BOOT-INF/classes/com/example/demo2/
-rw-r--r--  2.0 unx      738 bl defN 20-Apr-17 09:53 BOOT-INF/classes/com/example/demo2/Demo2Application.class
-rw-r--r--  2.0 unx        1 bl defN 20-Apr-17 09:53 BOOT-INF/classes/application.properties
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-17 09:53 BOOT-INF/lib/
-rw-rw-r--  2.0 unx  1432246 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-boot-autoconfigure-2.3.0.M4.jar
-rw-rw-r--  2.0 unx  1076155 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-boot-2.3.0.M4.jar
-rw-rw-r--  2.0 unx     4743 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-boot-starter-logging-2.3.0.M4.jar
-rw-rw-r--  2.0 unx     4748 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-boot-starter-2.3.0.M4.jar
-rw-rw-r--  2.0 unx    25058 b- stor 19-Sep-22 07:59 BOOT-INF/lib/jakarta.annotation-api-1.3.5.jar
-rw-rw-r--  2.0 unx  1227620 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-context-5.2.5.RELEASE.jar
-rw-rw-r--  2.0 unx   372325 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-aop-5.2.5.RELEASE.jar
-rw-rw-r--  2.0 unx   685311 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-beans-5.2.5.RELEASE.jar
-rw-rw-r--  2.0 unx   282183 b- stor 20-Apr-04 10:36 BOOT-INF/lib/spring-expression-5.2.5.RELEASE.jar
-rw-r--r--  2.0 unx  1440907 b- stor 20-Apr-04 10:24 BOOT-INF/lib/spring-core-5.2.5.RELEASE.jar
-rw-rw-r--  2.0 unx   309001 b- stor 20-Apr-04 10:36 BOOT-INF/lib/snakeyaml-1.26.jar
-rw-rw-r--  2.0 unx    17463 b- stor 20-Apr-04 10:36 BOOT-INF/lib/log4j-to-slf4j-2.13.1.jar
-rw-rw-r--  2.0 unx   290339 b- stor 19-Mar-10 17:44 BOOT-INF/lib/logback-classic-1.2.3.jar
-rw-rw-r--  2.0 unx   471901 b- stor 19-Mar-10 17:44 BOOT-INF/lib/logback-core-1.2.3.jar
-rw-r--r--  2.0 unx     4592 b- stor 20-Jan-25 13:22 BOOT-INF/lib/jul-to-slf4j-1.7.30.jar
-rw-r--r--  2.0 unx    41472 b- stor 20-Jan-25 13:22 BOOT-INF/lib/slf4j-api-1.7.30.jar
-rw-r--r--  2.0 unx    23961 b- stor 20-Apr-04 10:24 BOOT-INF/lib/spring-jcl-5.2.5.RELEASE.jar
-rw-rw-r--  2.0 unx   292244 b- stor 20-Apr-04 10:36 BOOT-INF/lib/log4j-api-2.13.1.jar
----------  2.0 unx      519 bl defN 80-Feb-01 00:00 BOOT-INF/classpath.idx
100 files, 8227750 bytes uncompressed, 8099920 bytes compressed:  1.6%

Comment From: jvalkeal

Same for maven build:

zipinfo target/demo1-0.0.1-SNAPSHOT.jar 
Archive:  target/demo1-0.0.1-SNAPSHOT.jar
Zip file size: 8120729 bytes, number of entries: 105
drwxr-xr-x  2.0 unx        0 bX defN 20-Apr-12 14:01 META-INF/
-rw-r--r--  2.0 unx      460 bl defN 20-Apr-12 14:01 META-INF/MANIFEST.MF
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/boot/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/boot/loader/
-rw-r--r--  2.0 unx     5303 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/ClassPathIndexFile.class
-rw-r--r--  2.0 unx     6806 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/ExecutableArchiveLauncher.class
-rw-r--r--  2.0 unx     3966 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/JarLauncher.class
-rw-r--r--  2.0 unx     1535 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/LaunchedURLClassLoader$UseFastConnectionExceptionsEnumeration.class
-rw-r--r--  2.0 unx     7704 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/LaunchedURLClassLoader.class
-rw-r--r--  2.0 unx     5908 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/Launcher.class
-rw-r--r--  2.0 unx     1536 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/MainMethodRunner.class
-rw-r--r--  2.0 unx      266 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher$1.class
-rw-r--r--  2.0 unx     1484 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher$ArchiveEntryFilter.class
-rw-r--r--  2.0 unx     1953 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher$PrefixMatchingArchiveFilter.class
-rw-r--r--  2.0 unx    21531 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/PropertiesLauncher.class
-rw-r--r--  2.0 unx     1750 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/WarLauncher.class
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/boot/loader/archive/
-rw-r--r--  2.0 unx      302 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/Archive$Entry.class
-rw-r--r--  2.0 unx      511 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/Archive$EntryFilter.class
-rw-r--r--  2.0 unx     3679 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/Archive.class
-rw-r--r--  2.0 unx     6093 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$AbstractIterator.class
-rw-r--r--  2.0 unx     2180 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$ArchiveIterator.class
-rw-r--r--  2.0 unx     1857 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$EntryIterator.class
-rw-r--r--  2.0 unx     1269 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$FileEntry.class
-rw-r--r--  2.0 unx     2443 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive$SimpleJarFileArchive.class
-rw-r--r--  2.0 unx     5259 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/ExplodedArchive.class
-rw-r--r--  2.0 unx     2884 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$AbstractIterator.class
-rw-r--r--  2.0 unx     1981 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$EntryIterator.class
-rw-r--r--  2.0 unx     1081 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$JarFileEntry.class
-rw-r--r--  2.0 unx     2528 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive$NestedArchiveIterator.class
-rw-r--r--  2.0 unx     7467 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/archive/JarFileArchive.class
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/boot/loader/data/
-rw-r--r--  2.0 unx      485 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessData.class
-rw-r--r--  2.0 unx      282 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile$1.class
-rw-r--r--  2.0 unx     2680 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile$DataInputStream.class
-rw-r--r--  2.0 unx     3259 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile$FileAccess.class
-rw-r--r--  2.0 unx     4015 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/data/RandomAccessDataFile.class
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/boot/loader/jar/
-rw-r--r--  2.0 unx     4976 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/AsciiBytes.class
-rw-r--r--  2.0 unx      616 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/Bytes.class
-rw-r--r--  2.0 unx      295 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord$1.class
-rw-r--r--  2.0 unx     3401 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord$Zip64End.class
-rw-r--r--  2.0 unx     2004 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord$Zip64Locator.class
-rw-r--r--  2.0 unx     4682 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryEndRecord.class
-rw-r--r--  2.0 unx     6223 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryFileHeader.class
-rw-r--r--  2.0 unx     4620 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryParser.class
-rw-r--r--  2.0 unx      540 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/CentralDirectoryVisitor.class
-rw-r--r--  2.0 unx      345 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/FileHeader.class
-rw-r--r--  2.0 unx    11492 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/Handler.class
-rw-r--r--  2.0 unx     3697 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarEntry.class
-rw-r--r--  2.0 unx      299 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarEntryFilter.class
-rw-r--r--  2.0 unx     2296 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile$1.class
-rw-r--r--  2.0 unx     1233 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile$2.class
-rw-r--r--  2.0 unx     1374 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile$JarFileType.class
-rw-r--r--  2.0 unx    15603 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFile.class
-rw-r--r--  2.0 unx     1593 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFileEntries$1.class
-rw-r--r--  2.0 unx     2046 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFileEntries$EntryIterator.class
-rw-r--r--  2.0 unx    13994 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarFileEntries.class
-rw-r--r--  2.0 unx      702 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$1.class
-rw-r--r--  2.0 unx     1250 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$2.class
-rw-r--r--  2.0 unx      410 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$CloseAction.class
-rw-r--r--  2.0 unx     4302 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection$JarEntryName.class
-rw-r--r--  2.0 unx    11523 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/JarURLConnection.class
-rw-r--r--  2.0 unx     3650 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/StringSequence.class
-rw-r--r--  2.0 unx     1813 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jar/ZipInflaterInputStream.class
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/boot/loader/jarmode/
-rw-r--r--  2.0 unx      293 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jarmode/JarMode.class
-rw-r--r--  2.0 unx     2201 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jarmode/JarModeLauncher.class
-rw-r--r--  2.0 unx     1292 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/jarmode/TestJarMode.class
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 org/springframework/boot/loader/util/
-rw-r--r--  2.0 unx     5174 bl defN 80-Feb-01 00:00 org/springframework/boot/loader/util/SystemPropertyUtils.class
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 BOOT-INF/
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 BOOT-INF/classes/
drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-12 14:01 BOOT-INF/classes/com/
drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-12 14:01 BOOT-INF/classes/com/example/
drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-12 14:01 BOOT-INF/classes/com/example/demo1/
drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-12 14:01 META-INF/maven/
drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-12 14:01 META-INF/maven/com.example/
drwxr-xr-x  2.0 unx        0 b- stor 20-Apr-12 14:01 META-INF/maven/com.example/demo1/
-rw-r--r--  2.0 unx      738 bl defN 20-Apr-12 14:01 BOOT-INF/classes/com/example/demo1/Demo1Application.class
-rw-r--r--  2.0 unx        1 bl defN 20-Apr-12 14:01 BOOT-INF/classes/application.properties
-rw-r--r--  2.0 unx     1764 bl defN 20-Apr-12 13:00 META-INF/maven/com.example/demo1/pom.xml
-rw-r--r--  2.0 unx       60 bl defN 20-Apr-12 14:01 META-INF/maven/com.example/demo1/pom.properties
drwxr-xr-x  2.0 unx        0 bl defN 20-Apr-12 14:01 BOOT-INF/lib/
-rw-r--r--  2.0 unx     4748 b- stor 20-Apr-03 10:59 BOOT-INF/lib/spring-boot-starter-2.3.0.M4.jar
-rw-r--r--  2.0 unx  1076155 b- stor 20-Apr-03 10:59 BOOT-INF/lib/spring-boot-2.3.0.M4.jar
-rw-r--r--  2.0 unx  1227620 b- stor 20-Mar-24 11:25 BOOT-INF/lib/spring-context-5.2.5.RELEASE.jar
-rw-r--r--  2.0 unx   372325 b- stor 20-Mar-24 11:25 BOOT-INF/lib/spring-aop-5.2.5.RELEASE.jar
-rw-r--r--  2.0 unx   685311 b- stor 20-Mar-24 11:25 BOOT-INF/lib/spring-beans-5.2.5.RELEASE.jar
-rw-r--r--  2.0 unx   282183 b- stor 20-Mar-24 11:25 BOOT-INF/lib/spring-expression-5.2.5.RELEASE.jar
-rw-r--r--  2.0 unx  1432246 b- stor 20-Apr-03 10:59 BOOT-INF/lib/spring-boot-autoconfigure-2.3.0.M4.jar
-rw-r--r--  2.0 unx     4743 b- stor 20-Apr-03 10:59 BOOT-INF/lib/spring-boot-starter-logging-2.3.0.M4.jar
-rw-r--r--  2.0 unx   290339 b- stor 17-Mar-31 20:20 BOOT-INF/lib/logback-classic-1.2.3.jar
-rw-r--r--  2.0 unx   471901 b- stor 17-Mar-31 20:19 BOOT-INF/lib/logback-core-1.2.3.jar
-rw-r--r--  2.0 unx    17463 b- stor 20-Feb-25 19:54 BOOT-INF/lib/log4j-to-slf4j-2.13.1.jar
-rw-r--r--  2.0 unx   292244 b- stor 20-Feb-25 19:52 BOOT-INF/lib/log4j-api-2.13.1.jar
-rw-r--r--  2.0 unx     4592 b- stor 19-Dec-16 22:00 BOOT-INF/lib/jul-to-slf4j-1.7.30.jar
-rw-r--r--  2.0 unx    25058 b- stor 19-Aug-02 11:08 BOOT-INF/lib/jakarta.annotation-api-1.3.5.jar
-rw-r--r--  2.0 unx  1440907 b- stor 20-Mar-24 11:24 BOOT-INF/lib/spring-core-5.2.5.RELEASE.jar
-rw-r--r--  2.0 unx    23961 b- stor 20-Mar-24 11:24 BOOT-INF/lib/spring-jcl-5.2.5.RELEASE.jar
-rw-r--r--  2.0 unx   309001 b- stor 20-Feb-28 09:07 BOOT-INF/lib/snakeyaml-1.26.jar
-rw-r--r--  2.0 unx    41472 b- stor 19-Dec-16 22:03 BOOT-INF/lib/slf4j-api-1.7.30.jar
-rw-r--r--  2.0 unx      519 bl defN 20-Apr-12 14:01 BOOT-INF/classpath.idx
105 files, 8229747 bytes uncompressed, 8100667 bytes compressed:  1.6%

Comment From: scottfrederick

@jvalkeal The permissions problem with Gradle should be fixed in the next 2.3.0.BUILD-SNAPSHOT. The issue remains open while I look at timestamps from Maven.

Comment From: jvalkeal

@scottfrederick yes, it works now, thanks!

Comment From: scottfrederick

All the concerns mentioned here have been fixed except the timestamps on classpath.idx and layers.idx. That concern is being addressed in #21005.