首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何决定在.gitignore中添加. .idea/jarRepositories.xml

如何决定在.gitignore中添加. .idea/jarRepositories.xml
EN

Stack Overflow用户
提问于 2020-08-10 15:01:59
回答 2查看 3.5K关注 0票数 13

当我将Android 3.5.3升级到Mac上的4.0.1时,我发现了一个不熟悉的文件3.5.3。内容如下:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
  <component name="RemoteRepositoriesConfiguration">
    <remote-repository>
      <option name="id" value="central" />
      <option name="name" value="Maven Central repository" />
      <option name="url" value="https://repo1.maven.org/maven2" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="jboss.community" />
      <option name="name" value="JBoss Community repository" />
      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="BintrayJCenter" />
      <option name="name" value="BintrayJCenter" />
      <option name="url" value="https://jcenter.bintray.com/" />
    </remote-repository>
    <remote-repository>
      <option name="id" value="Google" />
      <option name="name" value="Google" />
      <option name="url" value="https://dl.google.com/dl/android/maven2/" />
    </remote-repository>
  </component>
</project>

它上已经有一个问题VonC回答可以添加到.gitignore中。

我想知道我是否应该将它添加到.gitignore中,而不应该将它提交给git。如何决定将其添加到.gitignore中?

JetBrains.gitignore

流行的存储库吉蒂诺 of githubAndroid.gitignore,但在编写此问题时没有.idea/jarRepositories.xml

另一方面,Global/JetBrains.gitignore有以下评论。

代码语言:javascript
复制
# Gradle and Maven with auto-import
# When using Gradle or Maven with auto-import, you should exclude module files,
# since they will be recreated, and may cause churn.  Uncomment if using
# auto-import.
# .idea/artifacts
# .idea/compiler.xml
# .idea/jarRepositories.xml
# .idea/modules.xml
# .idea/*.iml
# .idea/modules
# *.iml
# *.ipr

如您所见,它有.idea/jarRepositories.xml,行被注释掉。它还附有以下说明:

带有自动导入的级和Maven 当将Gradle或Maven与自动导入一起使用时,您应该排除模块文件,因为它们将被重新创建,并可能导致搅动。如果使用自动导入,请取消注释。

在Android 4.0.x中,不需要自动导入就可以使用Gradle吗?

远程Jar存储库

在上面的Global/JetBrains.gitignore中,davidkron的拉请求添加了一行# .idea/jarRepositories.xml评论如下所示:

自从IntelliJ 2019.3以来,这个文件自动出现在我们的git更改中。这些似乎只是在Maven/Gradle中定义的有关远程存储库的缓存信息。 进行此更改的原因: 在Maven/Gradle构建中,不应该使用自动生成的文件。 指向支持这些规则更改的文档的链接: 我还没有找到关于这个文件的文档或文章,但我的假设基于以下步骤:

  • 在IntelliJ中,“远程Jar存储库”可以在“设置”菜单中管理
  • 我删除了列表中的所有条目->文件消失了
  • 我再次导入了Maven/Gradle项目。
  • 该文件再次出现,与前面的条目相同。

正如他的评论,Android 4.0.1Remote Jar Repositories设置,如下面的屏幕截图所示。

我查看了Android 4.0.0的发行说明,发现了一节,如下所示:

IntelliJ IDEA 2019.3.3 核心的Android已经通过从IntelliJ IDEA到2019.3.3版本的改进而得到更新。 要了解更多关于与2019.3.3版本一起包含的其他IntelliJ版本的改进,请参阅以下页面:

  • IntelliJ IDEA 2019.3
  • IntelliJ IDEA 2019.3.3

我不确定,但我想知道是否应该在.idea/jarRepositories.xml中添加.gitignore,而不应该将它提交给git。我怎么才能决定加不加呢?如果有人能澄清标准,我真的很感激。

更新:

在Android 4.0.0的源代码中,我找到了源文件,它定义了文件名jarRepositories.xml

JpsRemoteRepositoriesConfigurationSerializer.java

代码语言:javascript
复制
public JpsRemoteRepositoriesConfigurationSerializer() {
  super("jarRepositories.xml", "RemoteRepositoriesConfiguration");
}

RemoteRepositoriesConfiguration.java

代码语言:javascript
复制
@State(name = "RemoteRepositoriesConfiguration", storages = @Storage("jarRepositories.xml"))
public class RemoteRepositoriesConfiguration implements PersistentStateComponent<RemoteRepositoriesConfiguration.State> {
  // ...
}

我还在JetBrain的IntelliJ IDEA Community的存储库中找到了它们的起源。

JpsJetBrains Project System的缩写,根据文件的说法

外部构建过程中的项目模型是由JetBrains项目系统提供的。

JPS以前的存储库将自己描述为:

基于Gant的构建框架+ dsl,具有声明式项目结构定义和自动IntelliJ IDEA项目构建

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-08-23 06:27:57

应该将文件.idea/jarRepositories.xml添加到.gitignore中。它是自动生成的,并且只有关于远程jar存储库的冗余信息。

我们的Android项目在项目级别的build.gradle中定义了那些存储库,例如:

代码语言:javascript
复制
allprojects {
    repositories {
        google()
        jcenter()
    }
}

第二个参考文献在其网页顶部写了以下导言:

添加生成依赖项 Android中的Gradle构建系统可以轻松地将外部二进制文件或其他库模块作为依赖项包含到您的构建中。..。本页描述了如何在Android项目中使用依赖项。但是请记住,您的Android项目必须只使用此页面上定义的依赖项配置。重点增加

此外,Android中的Add Library依赖项对话框有如下说明:

步骤1. 使用下面的表单查找要添加的库。此表单使用项目构建文件中指定的存储库(Google、JCenter、Android、Google )

您可以通过以下步骤找到它:

  1. 在Android的菜单中选择文件>项目结构.
  2. Dependencies项目结构对话框的左侧菜单中选择.
  3. Modules列中选择app
  4. 在“声明的依赖项”列中选择“+”。
  5. 在弹出菜单中选择1库依赖项
票数 12
EN

Stack Overflow用户

发布于 2020-08-10 22:27:32

我怎么才能决定加不加呢?

决定是否应该忽略文件的一个明确的一般标准是:

您能否在没有该文件的情况下克隆存储库,并且仍然有一个有效的项目(可以编译和执行的项目)?

例如,如果该文件被自动重新生成,或者使用自定义的本地路径重新创建(对于不同PC上的不同开发人员来说这是没有意义的),那么该文件可以被忽略。

所以,试一试,特别是考虑到你可以"禁用或启用IntelliJ IDEA项目的Gradle / Maven自动导入“。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63342780

复制
相关文章

相似问题

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