Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Java9项目Jigsaw与Gradle一起使用_Java_Kotlin_Gradle_Java Platform Module System - Fatal编程技术网

将Java9项目Jigsaw与Gradle一起使用

将Java9项目Jigsaw与Gradle一起使用,java,kotlin,gradle,java-platform-module-system,Java,Kotlin,Gradle,Java Platform Module System,我正在使用Gradle、Kotlin和Java9模块(Jigsaw)构建一个库。我试图以类似的方式构建我的构建,因此结构如下所示: src module1 (setup as a IJ module) kotlin (setup as IJ sources) example.packages module-info.java module2 (setup as a IJ module) kotlin (setup as IJ

我正在使用Gradle、Kotlin和Java9模块(Jigsaw)构建一个库。我试图以类似的方式构建我的构建,因此结构如下所示:

src
   module1 (setup as a IJ module)
      kotlin (setup as IJ sources)
         example.packages
         module-info.java
   module2 (setup as a IJ module)
      kotlin (setup as IJ sources)
         example.packages
         module-info.java
settings.gradle
build.gradle
我遇到的第一个主要问题是,当尝试重新加载gradle或任何类似的东西时,它会导致这个问题(当然,“路径到项目”只是我项目的完整路径):

项目目录“PATH_TO_Project/src/module1”不是由设置文件“PATH_TO_Project/settings.gradle”定义的生成的一部分。如果这是一个不相关的生成,它必须有自己的设置文件

(我拥有的每个模块都会出现此问题)

当我将settings.gradle添加到任何模块时,其他模块会停止识别它和/或它不会添加到模块路径。如果我不添加settings.gradle,那么我的模块可以工作,但gradle不能。我还尝试通过名称和指定路径将模块包括在root settings.gradle中。如果我按名称包含,同样的问题,如果我包含并指定路径,gradle会抱怨找不到指定的项目(我知道路径是正确的)

以下是我的设置/build.gradle:

settings.gradle:

rootProject.name = 'example'

include 'module1', 'module2'

//subProject 'module1', 'module2' //Uncommenting this to provide a direct path to the module

private subProject(String... name) {
    for (int i = 0; i < name.length; i++) {
        project(name[i]).projectDir =  new File(rootDir.absolutePath + "${File.separator}src${File.separator}${name[i]}")
    }
}
谢谢!我真的没有在这方面找到太多,而且那些例子似乎对我不起作用

plugins {
    id 'java'
    id 'java-library'
    id 'org.jetbrains.kotlin.jvm' version '1.5.0'
}

group 'com.example' //not my actually group ID
version '1.0-SNAPSHOT'


test {
    useJUnit()
}

java {
    modularity.inferModulePath = true
}

tasks.named('compileJava') {
    modularity.inferModulePath = true
    options.javaModuleVersion = provider { project.version }
}

dependencies {
    compile 'org.jetbrains:annotations:20.1.0'
    compile 'org.ow2.asm:asm:9.1'
    compile 'org.ow2.asm:asm-util:9.1'
    implementation "org.jetbrains.kotlin:kotlin-stdlib-jdk8"

    testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'
    testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine'
}