Gradle Java 9 未找到模块

Gradle Java 9 Module not found

我尝试用 Gradle 在 Java 9 中开发一个小例子。但是我没有找到制作工作 运行 配置的确切选项。我试图从 this little tutorial 复制正确的部分。但是 运行 任务确实得到一个错误

java.lang.module.FindException: Module de.project.crawler not found

显然我提供的模块路径有误 Gradle 但我不知道如何解决这个问题。

我的工作目录

project/
  crawler/
  |  src/
  |  |  main/
  |  |  |  java/
  |  |  |  |  de.project.crawler/
  |  |  |  |  |  Main.java
  |  |  module-info.java
  |  build.gradle
  |  settings.gradle
  build.gradle
  settings.gradle

build.gradle:

subprojects {
    afterEvaluate {
        compileJava {
            inputs.property("moduleName", moduleName)
            doFirst {
                options.compilerArgs = [
                        '--module-path', classpath.asPath,
                ]
                classpath = files()
            }
        }
    }
}

crawler/build.gradle:

plugins {
    id 'java-library'
    id 'application'
}

ext.moduleName = 'de.project.crawler'
mainClassName = 'de.project.crawler/de.project.crawler.Main'

repositories {
    jcenter()
}

run {
    inputs.property("moduleName", moduleName)
    doFirst {
        jvmArgs = [
                '--module-path', classpath.asPath,
                '--module', mainClassName
        ]
        classpath = files()
    }
}

startScripts {
    inputs.property("moduleName", moduleName)
    doFirst {
        classpath = files()
        defaultJvmOpts = [
                '--module-path', 'APP_HOME_LIBS',
                '--module', mainClassName
        ]
    }
}

crawler/src/module-java.info

module de.project.crawler {
}

crawler/src/main/java/de.project.crawler/Main.java

package de.project.crawler;

public class Main {

    public static void main(String[] args) {
        System.out.println("Hallo");
    }
}

因此,如果我在 IntelliJ 中尝试此操作,一切正常。如果我在 cmd 上尝试这个,用 java9 和 运行 编译,一切正常。如果我尝试 'gradle run' 他会指出我在介绍中给你的错误。

module-info.java 位置错误。该文件必须位于模块中的 src/main/java 上。这是正确的结构:

project/
  crawler/
  |  src/
  |  |  main/
  |  |  |  java/
  |  |  |  |  de.project.crawler/
  |  |  |  |  |  Main.java
  |  |  |  |  module-info.java
  |  build.gradle
  |  settings.gradle
  build.gradle
  settings.gradle

感谢艾伦·贝特曼的评论。