Java Intellij在哪里存储有关为模块配置哪些内容根的数据?
如果我转到Intellij中的“项目结构”菜单,选择一个模块并转到“源”选项卡,我就能够将内容根添加到项目位置之外的模块中 我希望找到的是intellij存储此设置的位置。我想象在某个地方有一个xml文件,它描述了为一个模块设置的内容根,但我一生都找不到它 一些背景: 我试图解决的问题是,我现在正在处理的项目非常大,结构非常奇怪(想想与目录结构不匹配的包名),并且是使用makefile编译的。由于这个原因(可能还有其他一些我还没有解决的原因),如果我只是从现有的源代码中导入源代码作为新项目,Intellij将无法找到大多数类 项目中的大多数其他开发人员使用命令行和vim的组合,但是有一个开发人员使用Eclipse。这位开发人员编写了一个工具,它可以从源代码创建多个Eclipse项目(大约40个),并使用Eclipse提供的LinkedResources功能,能够将其链接回原始源位置,而无需将任何内容放入存储库中 我能够将此eclipse项目导入Intellij,但Intellij无法翻译或理解LinkedResources的概念,因此在Intellij中创建的模块和包是空的,但它已设法找到.class文件并对其进行反编译(我假设是因为eclipse.classpath文件),因此,我可以看到每个Eclipse项目(在Intellij项目中作为模块创建)的反编译类。如果我随后手动浏览模块并添加与Eclipse.project文件中LinkedResource标记中指定的路径匹配的内容根,那么我就能够找到实际的.java文件并对其进行编辑。太好了 问题的第二部分来自公司使用git的过程。我所在的公司没有使用分支机构进行新功能工作,而是使用克隆的回购协议进行功能工作。这意味着,当我开始一项新工作时,我需要在承载git的服务器上克隆repo,然后在本地克隆该repo并提交并推送到该repo。这意味着,我无法设置这个项目一次,让它单独,只是切换分支,我将需要创建一个新的项目,每次我需要切换回购 eclipse项目通过使用带有sed命令的脚本在.project文件中的LinkedResources标记中查找并替换正确的文件路径来解决这个问题,以便在您想要处理不同的功能时指向不同的repo,Eclipse然后更新并指向新文件,当您编辑文件时,您正在编辑新的远程位置 我希望能够通过使用sed命令(或类似命令)来修改指定的内容根的路径,从而能够继续使用Intellij,而不必使用Eclipse。考虑到创建了40个左右的模块,每次切换repos时手动执行任务太耗时了Java Intellij在哪里存储有关为模块配置哪些内容根的数据?,java,eclipse,git,intellij-idea,Java,Eclipse,Git,Intellij Idea,如果我转到Intellij中的“项目结构”菜单,选择一个模块并转到“源”选项卡,我就能够将内容根添加到项目位置之外的模块中 我希望找到的是intellij存储此设置的位置。我想象在某个地方有一个xml文件,它描述了为一个模块设置的内容根,但我一生都找不到它 一些背景: 我试图解决的问题是,我现在正在处理的项目非常大,结构非常奇怪(想想与目录结构不匹配的包名),并且是使用makefile编译的。由于这个原因(可能还有其他一些我还没有解决的原因),如果我只是从现有的源代码中导入源代码作为新项目,In
如果有任何指向正确方向的建议,或者有任何其他可能用来解决这个问题的建议,我将不胜感激。谢谢 如果我理解正确,您需要设置项目的源文件夹。这将进入项目附带的.iml(模块文件)中。在该XML文件中查找路径
module.component.content
例如,一个非常常规的模块将遵循以下结构:
<?xml version="1.0" encoding="UTF-8"?>
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_1_8" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/target/classes" />
<output-test url="file://$MODULE_DIR$/target/test-classes" />
<!-- This is what you're looking for -->
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
<sourceFolder url="file://$MODULE_DIR$/src/test/java" isTestSource="true" />
<excludeFolder url="file://$MODULE_DIR$/target" />
<excludeFolder url="file://$MODULE_DIR$/../jaxrs-container-api/target" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="Maven: javax.ws.rs:javax.ws.rs-api:2.0.1" level="project" />
</component>
</module>
嘿,谢谢你的回复。这正是我所期望的.imls的样子,但由于某些原因,它们看起来更像这样
,我认为这可能与从Eclipse导入它有关。。这是其中一个模块的整个iml文件,但它确实给了我一个想法。也许我可以手动创建我的模块,以便从正确的位置匹配Eclipse中的模块,然后使用sed命令更改iml文件。在手动添加内容根目录后,是否尝试查看.iml?IntelliJ是否创建了我提到的部分?是的,它来自于我添加了根的.iml。我不完全确定从eclipse导入时发生了什么。这个项目太疯狂了。哈哈。是的,我以前从没听说过这样的项目。您可以浏览一下.idea/modules.xml(或.ipr文件),它存储关于项目的配置,并查找eclipse类路径。