首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为共享的.IML项目处理.IML文件中的重大(但却毫无意义的)常量更改

为共享的.IML项目处理.IML文件中的重大(但却毫无意义的)常量更改
EN

Stack Overflow用户
提问于 2017-03-29 12:58:20
回答 1查看 246关注 0票数 1

我有一个相对简单的使用Gradle构建的3模块IntelliJ项目。我对Gradle和IntelliJ都很陌生,并且正在努力让我的两台个人机器之间的工具/过程得到理解。

项目存储在Git中,但是每次我在各自的机器上打开IntelliJ (在从另一台机器上推送更改后),我的模块文件总是会被更改:

代码语言:javascript
复制
modified:   .idea/modules/core/core.iml
modified:   .idea/modules/service/service.iml
modified:   .idea/modules/web/web.iml

更改总是对我的库条目进行重新排序:

代码语言:javascript
复制
-    <orderEntry type="library" scope="TEST" name="Gradle: io.netty:netty-resolver:4.1.6.Final" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: io.projectreactor:reactor-core:2.0.8.RELEASE" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.yaml:snakeyaml:1.15" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.jodd:jodd-core:3.7.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-all:1.1" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.objenesis:objenesis:1.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: cglib:cglib-nodep:2.2" level="project" />
-    <orderEntry type="library" scope="TEST" name="Gradle: org.reactivestreams:reactive-streams:1.0.0" level="project" />
     <orderEntry type="library" scope="TEST" name="Gradle: com.fasterxml.jackson.core:jackson-annotations:2.7.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.reactivestreams:reactive-streams:1.0.0" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: cglib:cglib-nodep:2.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.objenesis:objenesis:1.2" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.hamcrest:hamcrest-all:1.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.jodd:jodd-core:3.7.1" level="project" />
+    <orderEntry type="library" scope="TEST" name="Gradle: org.yaml:snakeyaml:1.15" level="project" />

这些变化是重大的:

代码语言:javascript
复制
$ git diff --stat
 java/.idea/modules/core/core.iml       | 204 ++++++++++----------
 java/.idea/modules/service/service.iml | 276 +++++++++++++--------------
 java/.idea/modules/web/web.iml         | 338 ++++++++++++++++-----------------

每当我从一台机器换到另一台机器时,这种情况就会发生。

有没有办法说服IntelliJ将这些条目保持在相同的顺序?这是非常恼人的每一个我的承诺,包括这3个文件,以及任何其他我正在做的改变。

显然,我不能.gitignore这三个文件,因为它们包含关于我的模块配置的所有其他信息-这是完全有意义的分享。

请注意,我没有在构建文件中使用apply plugin 'idea',我只是让IDEA完全管理模块。这是我的错吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-03-29 13:14:48

显然,我不能.gitignore这三个文件,因为它们包含关于我的模块配置的所有其他信息-这是完全有意义的分享。

其实你可以。当您打开项目并与Gradle同步时,将从Gradle生成这些文件。

请参阅关于共享项目文件的常见问题和下面的注释。

与之相关的bug:

  • IDEA-165941级:在.iml中的orderEntry在build.gradle中有和没有变化的情况下都有不同的排序
  • IDEA-157363 Android:在orderEntry文件中任意调整orderEntry标记的顺序( w/o相关的梯度配置更改)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43094234

复制
相关文章

相似问题

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