首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >找不到Gradle Java 9模块

找不到Gradle Java 9模块
EN

Stack Overflow用户
提问于 2018-02-17 21:02:23
回答 1查看 5.1K关注 0票数 4

我试着用Gradle用Java9开发一个小例子。但我找不到确切的选项来进行有效的运行配置。我试着从this little tutorial复制正确的部分。但是run任务确实得到了一个错误。

java.lang.module.FindException:未找到模块de.project.crawler

显然,我给Gradle的模块路径有一个错误,但我不知道如何修复这个错误。

我的工作目录

代码语言:javascript
复制
project/
  crawler/
  |  src/
  |  |  main/
  |  |  |  java/
  |  |  |  |  de.project.crawler/
  |  |  |  |  |  Main.java
  |  |  module-info.java
  |  build.gradle
  |  settings.gradle
  build.gradle
  settings.gradle

build.gradle:

代码语言:javascript
复制
subprojects {
    afterEvaluate {
        compileJava {
            inputs.property("moduleName", moduleName)
            doFirst {
                options.compilerArgs = [
                        '--module-path', classpath.asPath,
                ]
                classpath = files()
            }
        }
    }
}

爬虫/build.gradle:

代码语言:javascript
复制
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

代码语言:javascript
复制
module de.project.crawler {
}

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

代码语言:javascript
复制
package de.project.crawler;

public class Main {

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

所以,如果我在IntelliJ中尝试,一切都正常。如果我在cmd上试一下,用java9编译并运行它,一切都正常。如果我尝试'gradle run‘,他会指出我在介绍中给出的错误。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-02-23 17:49:39

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

代码语言:javascript
复制
project/
  crawler/
  |  src/
  |  |  main/
  |  |  |  java/
  |  |  |  |  de.project.crawler/
  |  |  |  |  |  Main.java
  |  |  |  |  module-info.java
  |  build.gradle
  |  settings.gradle
  build.gradle
  settings.gradle

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

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48841567

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档