gradle.properties中的条件代理设置

时间:2016-09-07 06:28:54

标签: android-studio gradle proxy

我使用经过身份验证的公司代理在我的办公室使用Android Studio和gradle。遗憾的是,我必须在gradle.properties中输入我的代理配置,包括明文中的用户/传递(或者让它自动从Android Studio的首选项中传播)。

但是,有时候我在办公室以外的地方工作,然后每次都必须手动进入并注释掉我的代理设置,这很乏味。

有没有办法让gradle文件中的属性有条件,以便通过检测我公司网络上是否可以自动激活代理配置?反过来,可以通过查询当前网络的网络适配器来检索条件本身,或者通过对公司网络上的已知主机进行简单的卷曲来检索条件本身。

我同时使用Windows和Ubuntu客户端,但这个问题主要适用于Windows。

我猜可能还有其他方法可以解决这个问题,也许是改变全局gradle设置而不是项目特定的设置。说实话,我必须做一个类似的git config --add http.proxy,对于npmbower也是如此,每次我改变工作环境都是如此。欢迎其他建议,即使此问题专门询问如何创建试图连接到已知Intranet主机的gradle.properties,并且取决于结果集或取消设置属性。

1 个答案:

答案 0 :(得分:0)

一段时间以来,我遇到了同样的问题。我还有一个问题,gradle.properties已通过代理设置签入到我们的VCS中。并且在我所有提交之前,我必须采取额外的步骤来忽略我对该文件所做的更改。此外,我一天必须多次对同一段代码进行注释/取消注释。

我无法提供条件更新系统,但是第二个问题已通过Android Studio中的内置书架功能并创建更改列表以使用不同设置保留2个文件副本的方式得以解决。

我认为没有任何方法可以解决您所要求的问题。原因很简单:.properties文件并不意味着具有逻辑。引用Java docs

  

属性是作为键/值对管理的配置值。

可以通过Android Studio代理设置或编写在项目加载时运行,检查网络条件并设置系统属性的Gradle任务来实现动态设置。我还没有测试这种方法,但是我认为这也会更新gradle.properties文件(您可能不希望出现的副作用)。但是Gradle所做的事情也可以通过您需要在项目加载时执行的Shell脚本来完成。

我当前处理代理更新的方式是在Android Studio本身中输入/保存代理设置,并在位置之间移动时进行切换。只需几个命令即可打开代理对话框并启用/禁用已保存的代理。

由于此代理文件保存在idea.config.path/options/proxy.settings.xml中,因此您还可以尝试编写一个Shell脚本,该脚本可以根据网络可用性来切换内容。

这可能不是您想要的,但我希望它能弄清为什么无法按照您的要求进行。