首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中获取模块路径而不是根路径

在Java中获取模块路径而不是根路径
EN

Stack Overflow用户
提问于 2021-03-25 08:33:52
回答 2查看 284关注 0票数 0

我有一个多模块Java(Spring)项目,它是由6.7.1级构建的。我用Jetbrain的想法来发展。这样的文件结构:

代码语言:javascript
复制
root
  |--orm
  |   +---hibernates
  |
  |--web
      |--mvc
      |--rest

然后,我在我的模块项目中尝试了一些代码,如下所示,我得到的都是根路径(/home/user/IdeaProjects/root/),而不是模块路径(/home/user/IdeaProjects/root/web/mvc)。如何获得模块路径(/home/user/IdeaProjects/root/web/mvc)?

代码语言:javascript
复制
new File("").getAbsolutePath()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-03-25 10:50:34

例如,假设您的mvc项目是像这样在setting.gradle中设置的,在根文件夹中:

代码语言:javascript
复制
include 'mvc'
project(':mvc').projectDir = new File('./web/mvc')

然后,要获得路径/home/user/IdeaProjects/root/web/mvc,只需尝试以下操作:

代码语言:javascript
复制
println project(':mvc').projectDir

将打印:

/home/user/IdeaProjects/root/web/mvc

票数 1
EN

Stack Overflow用户

发布于 2021-03-25 09:43:43

基于@ToYonos的回答。我们可以这样做:

  1. settings.gradle获取每个模块的项目路径。
  2. 在每个模块中将键值写入info.properties
  3. Spring project读取此属性文件。

代码

代码语言:javascript
复制
Because struct of my project is:
root
  |--orm
  |   +---mybatis
  |   +---jpa
  |   +---...
  |--web
      +--mvc
      +--rest
      +--...

因此,我应该循环两次以获得模块名。我不包括没有build.gradle的项目。

代码语言:javascript
复制
file("${rootDir}").eachDir {
    it.eachDirMatch(~/.*/) {
        if (it.list().contains("build.gradle")) {
            def moduleName = "${it.parentFile.name}:${it.name}"
            println "   ${moduleName}"
            include moduleName
}}}

然后,读和写info.properties

代码语言:javascript
复制
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(), null
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66795735

复制
相关文章

相似问题

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