Java 11 + Gradle:找不到模块

时间:2019-07-04 13:22:10

标签: java gradle

我正在尝试创建具有模块化体系结构和gradle 5.4.1支持的Java 11应用程序。我创建了两个模块-第一个模块包含第二个模块使用的服务(没有主类),结构如下:

root
-module1
--src
---main
----java
-----com.package1
------Service.java
-----module-info.java
--build.gradle
-module2
--src
---main
----java
-----com.package2
------MyClass.java
-----module-info.java
--build.gradle
build.gradle
settings.gradle

module1中的module-info.java:

module module1 {
  exports com.package1;
}

来自module1的build.gradle:

plugins {
 id 'java'
}
sourceCompatibility = '11'
ext.moduleName = 'module1'
dependencies {
// ...
}
compileJava {
  inputs.property("moduleName", moduleName)
  doFirst {
    options.compilerArgs = [
      '--module-path', classpath.asPath,
    ]
    classpath = files()
  }
}

module2中的module-info.java:

module module2 {
  requires com.package1;
}

module2中的build.gradle:

plugins {
 id 'java'
}
sourceCompatibility = '11'
ext.moduleName = 'module2'
dependencies {
  compile project(':module1')
// ...
}
compileJava {
  inputs.property("moduleName", moduleName)
  doFirst {
    options.compilerArgs = [
      '--module-path', classpath.asPath,
    ]
    classpath = files()
  }
}

root / settings.gradle:

rootProject.name = "root"
include 'module1'
include 'module2'

root / build.gradle:

plugins {
 id 'java'
}

allprojects {
  repositories {
    mavenCentral()
    jcenter()
  }
}

问题是当我gradle运行第二个模块时,出现“错误:找不到模块:module1”。我在Google上搜索了许多解决方案,但它们都与定制模块无关,而仅涉及外部模块/库(例如spring.core等)。 Module-infos在文件树中的正确位置,并且我没有办法解决此问题。如果您有任何想法,请告诉我,我非常感谢每种帮助。

0 个答案:

没有答案