繁体   English   中英

Java和Gradle的模块的源代码结构是否不同?

[英]Do Java and Gradle have different source structure for modules?

我看到在Gradle中 ,我们将模块声明为artifact/src/main/java/module-info.java ,但在OpenJDK中,他们将其声明为src/com.group.artifact/module-info.java 然后在Jenkov中,我们有src/main/java/com.group.artifact/module-info.java

我很困惑,应该使用哪一个? 我有一个Gradle项目,其中包含多个子项目。 我正在尝试将子项目用作模块。 当我使用Jenkov方法时,IntelliJ IDEA出现错误,我必须切换到Gradle one。 一样吗

OpenJDK和Gradle仅具有用于构造源代码的不同约定。 由于您使用的是Gradle(因此使用了Gradle的Java语言插件),因此应遵循其约定。 Gradle的Java语言插件将自动编译src/main/java目录中的代码。

假设您有两个模块com.example.moduleonecom.example.moduletwo ,则您项目的结构应如下所示:

build.gradle
settings.gradle
com.example.moduleone
└──src
   └──main
      └──java
         ├──{PACKAGES_AND_CODE}
         └──module-info.java
com.example.moduletwo
└──src
   └──main
      └──java
         ├──{PACKAGES_AND_CODE}
         └──module-info.java

使用Gradle并使用javac -d out --module-source-path src -m com.example.moduleone,com.example.moduletwo自己编译项目,它应如下所示:

src
├──com.example.moduleone
|  ├──{PACKAGES_AND_CODE}
|  └──module-info.java
└──com.example.moduletwo
   ├──{PACKAGES_AND_CODE}
   └──module-info.java

至于“詹科夫方法”:我以前从未见过这种结构,它看起来像是一种奇怪的混合物,我建议不要使用它。 这可能会使其他开发人员感到困惑。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM