【问题标题】:NetBeans w/ Gradle Support System Environments for TestingNetBeans w/ Gradle 支持用于测试的系统环境
【发布时间】:2017-05-20 18:16:27
【问题描述】:

因此,我正在尝试通过 Java 客户端库使用 Google Places API 的项目开始 Java 开发。我从事 PHP/Javascript 开发已经有一段时间了,并且通过 Headfirst Java 取得了成功,但之前没有使用过 Gradle。

到目前为止,我很尴尬地只是让客户端库测试和构建成功。我已经 git 克隆了客户端库,安装了 Netbeans、JDK 8 和 Netbeans 的 Gradle 支持插件,并设置了我的 Google API 密钥。我正在努力工作,fwiw。根据https://github.com/googlemaps/google-maps-services-java 的文档,我必须设置一个 API_KEY 环境变量才能运行测试,所以我尝试将其设置为 Netbeans 中客户端库项目的 JVM 选项(见截图,这是一个真正的关键,但显然我在截屏之前删除了密钥本身)

这是基于 Gradle 支持插件的文档:https://github.com/kelemen/netbeans-gradle-project/wiki/Built-In-Tasks

不幸的是,我仍然收到 IllegalArgumentException: No credentials Found!... 对于我的所有测试。我在 com.google.maps.AuthenticatedTest.java:57 中设置了一个断点并调试了测试,很明显,似乎当时没有设置环境变量(那里的 apiKey 变量是一个空字符串),虽然我确定我用于添加 JVM args 的方法正在工作,因为我在添加它后开始获取测试的堆栈跟踪(最初我只是得到:“com.google.maps.GeolocationApiTest > InitializationError FAILED java.lang.IllegalArgumentException”最后它建议我使用 --stacktrace 运行测试以获取更多详细信息)。

我猜我缺少一些非常基本的东西,但我不知道从哪里看。

【问题讨论】:

    标签: java netbeans gradle google-places-api


    【解决方案1】:

    Java 的-D 参数设置一个属性(您可以使用System.getProperty 方法查找的内容),而不是环境变量。很明显,在您的情况下,正确的标志将是:

    -Dapi.key="secret key"
    

    注意属性和环境变量名称的区别。

    显然,如果您在其他地方设置环境变量(您的登录 shell 配置文件、Windows 的系统属性等),您仍然可以使用环境变量

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-18
      • 2015-10-08
      • 1970-01-01
      • 2010-11-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-04
      相关资源
      最近更新 更多