java - 找不到 Gradle Java 9 模块

标签 java gradle java-9

我尝试使用 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()
            }
        }
    }
}

爬虫/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
        ]
    }
}

爬虫/src/module-java.info

module de.project.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

感谢 Alan Bateman 的评论。

关于java - 找不到 Gradle Java 9 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48841567/

相关文章:

java - JDK 日期格式解析德语语言环境中的星期几,java 8 与 java 9

java - 如何在特定的 Java 版本上运行应用程序?

android - Android Studio始终以28版开始项目

android - 为什么 Android Studio "Could not find kotlin-compiler-27.0.1.jar"?

java - "but the compiler doesn' t 知道这个 "- what' 的意义吗?

Java 9 集合的便捷工厂方法作为集合文字的替代方案

java - 在 application.properties 中使用 pom.xml 的属性值

java - 如何从函数输入参数创建同名数组

java - 在 Google App Engine 中使用 Java,存储和访问大型静态数据的最佳方式是什么?

gradle - 如何在 Gradle 中复制一些依赖项 jar