我有一个多模块Java(Spring)项目,它是由6.7.1级构建的。我用Jetbrain的想法来发展。这样的文件结构:
root
|--orm
| +---hibernates
|
|--web
|--mvc
|--rest然后,我在我的模块项目中尝试了一些代码,如下所示,我得到的都是根路径(/home/user/IdeaProjects/root/),而不是模块路径(/home/user/IdeaProjects/root/web/mvc)。如何获得模块路径(/home/user/IdeaProjects/root/web/mvc)?
new File("").getAbsolutePath()发布于 2021-03-25 10:50:34
例如,假设您的mvc项目是像这样在setting.gradle中设置的,在根文件夹中:
include 'mvc'
project(':mvc').projectDir = new File('./web/mvc')然后,要获得路径/home/user/IdeaProjects/root/web/mvc,只需尝试以下操作:
println project(':mvc').projectDir将打印:
/home/user/IdeaProjects/root/web/mvc
发布于 2021-03-25 09:43:43
基于@ToYonos的回答。我们可以这样做:
settings.gradle获取每个模块的项目路径。info.properties。代码
Because struct of my project is:
root
|--orm
| +---mybatis
| +---jpa
| +---...
|--web
+--mvc
+--rest
+--...因此,我应该循环两次以获得模块名。我不包括没有build.gradle的项目。
file("${rootDir}").eachDir {
it.eachDirMatch(~/.*/) {
if (it.list().contains("build.gradle")) {
def moduleName = "${it.parentFile.name}:${it.name}"
println " ${moduleName}"
include moduleName
}}}然后,读和写info.properties。
import java.nio.file.Paths
// read
def project_dir = project(":${moduleName}").projectDir
def propFile = Paths.get("${project_dir}", "src", "main","resources","info.properties").toFile()
propFile.createNewFile()
Properties props = new Properties()
propFile.withInputStream {
props.load(it)
}
// write
props.setProperty("project.dir","$project_dir")
props.store propFile.newWriter(), nullhttps://stackoverflow.com/questions/66795735
复制相似问题