当我将Android 3.5.3升级到Mac上的4.0.1时,我发现了一个不熟悉的文件3.5.3。内容如下:
<?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 github有Android.gitignore,但在编写此问题时没有.idea/jarRepositories.xml。
另一方面,Global/JetBrains.gitignore有以下评论。
# 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构建中,不应该使用自动生成的文件。 指向支持这些规则更改的文档的链接: 我还没有找到关于这个文件的文档或文章,但我的假设基于以下步骤:
正如他的评论,Android 4.0.1有Remote Jar Repositories设置,如下面的屏幕截图所示。

我查看了Android 4.0.0的发行说明,发现了一节,如下所示:
IntelliJ IDEA 2019.3.3 核心的Android已经通过从IntelliJ IDEA到2019.3.3版本的改进而得到更新。 要了解更多关于与2019.3.3版本一起包含的其他IntelliJ版本的改进,请参阅以下页面:
我不确定,但我想知道是否应该在.idea/jarRepositories.xml中添加.gitignore,而不应该将它提交给git。我怎么才能决定加不加呢?如果有人能澄清标准,我真的很感激。
更新:
在Android 4.0.0的源代码中,我找到了源文件,它定义了文件名jarRepositories.xml
JpsRemoteRepositoriesConfigurationSerializer.java
public JpsRemoteRepositoriesConfigurationSerializer() {
super("jarRepositories.xml", "RemoteRepositoriesConfiguration");
}RemoteRepositoriesConfiguration.java
@State(name = "RemoteRepositoriesConfiguration", storages = @Storage("jarRepositories.xml"))
public class RemoteRepositoriesConfiguration implements PersistentStateComponent<RemoteRepositoriesConfiguration.State> {
// ...
}我还在JetBrain的IntelliJ IDEA Community的存储库中找到了它们的起源。
Jps是JetBrains Project System的缩写,根据文件的说法
外部构建过程中的项目模型是由JetBrains项目系统提供的。
JPS以前的存储库将自己描述为:
基于Gant的构建框架+ dsl,具有声明式项目结构定义和自动IntelliJ IDEA项目构建
发布于 2020-08-23 06:27:57
应该将文件.idea/jarRepositories.xml添加到.gitignore中。它是自动生成的,并且只有关于远程jar存储库的冗余信息。
我们的Android项目在项目级别的build.gradle中定义了那些存储库,例如:
allprojects {
repositories {
google()
jcenter()
}
}第二个参考文献在其网页顶部写了以下导言:
添加生成依赖项 Android中的Gradle构建系统可以轻松地将外部二进制文件或其他库模块作为依赖项包含到您的构建中。..。本页描述了如何在Android项目中使用依赖项。但是请记住,您的Android项目必须只使用此页面上定义的依赖项配置。重点增加
此外,Android中的Add Library依赖项对话框有如下说明:
步骤1. 使用下面的表单查找要添加的库。此表单使用项目构建文件中指定的存储库(Google、JCenter、Android、Google )
您可以通过以下步骤找到它:
发布于 2020-08-10 22:27:32
我怎么才能决定加不加呢?
决定是否应该忽略文件的一个明确的一般标准是:
您能否在没有该文件的情况下克隆存储库,并且仍然有一个有效的项目(可以编译和执行的项目)?
例如,如果该文件被自动重新生成,或者使用自定义的本地路径重新创建(对于不同PC上的不同开发人员来说这是没有意义的),那么该文件可以被忽略。
所以,试一试,特别是考虑到你可以"禁用或启用IntelliJ IDEA项目的Gradle / Maven自动导入“。
https://stackoverflow.com/questions/63342780
复制相似问题