OpenJDK and Gradle simply have different conventions for structuring source code. Since you're using Gradle (and therefore Gradle's Java language plugin), you should follow it's conventions. Gradle's Java language plugin will automatically compile the code in the directory src/main/java.
Assuming you have two modules, com.example.moduleone and com.example.moduletwo, your project's structure should look like this:
build.gradle
settings.gradle
moduleone
├──src
│ └──main
│ └──java
│ ├──{PACKAGES_AND_CODE}
│ └──module-info.java
└──build.gradle
moduletwo
├──src
│ └──main
│ └──java
│ ├──{PACKAGES_AND_CODE}
│ └──module-info.java
└──build.gradle
Not using Gradle and compiling your project yourself with javac -d out --module-source-path src -m com.example.moduleone,com.example.moduletwo, it should look like this:
src
├──com.example.moduleone
│ ├──{PACKAGES_AND_CODE}
│ └──module-info.java
└──com.example.moduletwo
├──{PACKAGES_AND_CODE}
└──module-info.java
As for the 'Jenkov method': I've never seen this structure before, it looks like a weird mix and I recommend not to use it. It would probably be just confusing for other developers.