当我在 Mac 上.idea/jarRepositories.xml
更新 Android Studio 时,3.5.3
我发现了一个不熟悉的文件。4.0.1
内容如下:
<?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
github的流行存储库gitignore有,但在撰写此问题时还没有。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
并且该行已被注释掉。它还有以下注释:
具有自动导入功能的 Gradle 和 Maven
当使用带有自动导入功能的 Gradle 或 Maven 时,您应该排除模块文件,因为它们将被重新创建,并且可能会导致流失。如果使用自动导入,请取消注释。
在 Android Studio4.0.x
中,是否可以在不自动导入的情况下使用 Gradle?
远程 Jar 存储库
在上面,davidkron 的pull request已经添加了Global/JetBrains.gitignore
该行,他评论如下:# .idea/jarRepositories.xml
从 IntelliJ 2019.3 开始,该文件自动出现在我们的 git 更改中。这些似乎只是有关在 Maven/Gradle 中定义的远程存储库的缓存信息。
进行此更改的原因:
在 Maven/Gradle 构建中,不应提交自动生成的文件。
支持这些规则更改的文档链接:
我还没有找到有关此文件的文档或文章,但我的假设基于以下步骤:
- 在 IntelliJ 中,可以在“设置”菜单中管理“远程 Jar 存储库”
- 我删除了列表中的每个条目-> 文件消失了
- 我再次重新导入了 Maven/Gradle 项目
- 该文件再次出现,并显示与以前相同的条目
正如他的评论,Android Studio4.0.1
具有Remote Jar Repositories
设置,如您在以下屏幕截图中所见。
我查看了 Android Studio 的发行说明4.0.0
,发现有一段如下:
IntelliJ IDEA 2019.3.3
核心 Android Studio IDE 已通过 IntelliJ IDEA 到 2019.3.3 版本的改进进行了更新。
要了解更多关于版本 2019.3.3 中累积包含的其他 IntelliJ 版本的改进,请参阅以下页面:
- IntelliJ IDEA 2019.3
- IntelliJ IDEA 2019.3.3
我不确定,但想知道我是否应该添加.idea/jarRepositories.xml
并且.gitignore
不应该将其提交给 git。我如何决定是否添加它?如果有人能澄清标准,我真的很感激。
更新:
在 Android Studio 的源代码中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 社区版的存储库中找到了它们的起源。
Jps
根据一份文件,代表JetBrains Project System:
External Build 过程中的项目模型由 JPS(JetBrains Project System)提供。
JPS 以前的存储库将自己描述为:
基于 Gant 的构建框架 + dsl,具有声明性项目结构定义和自动 IntelliJ IDEA 项目构建