gpt4 book ai didi

android - Gradle 在交互式帐户下运行良好,但在 NT 服务下运行不正常

转载 作者:行者123 更新时间:2023-12-03 06:08:26 25 4
gpt4 key购买 nike

我们有一个批处理文件来构建我们的 Android 应用程序。它基本上运行 gradlew.bat assemble .当我远程桌面进入构建机器(Windows 8)并运行批处理文件时,一切都按预期构建。但是,当我通过 NT 服务调用批处理文件时,我们开始出现错误。

运行该服务的帐户确实具有计算机上的管理权限。

第一个错误是 javax.net.ssl.SSLHandshakeException .基于另一篇文章 Android Studio Gradle build failed. Error:Cause: peer not authenticated , 我修改了gradle-wrapper.properties使用 http而不是 https对于分发网址。这解决了这个问题。

下一个错误也类似,但这次是下载 pom 文件。基于另一篇文章 android- Gradle: An issue occurred configuring root project android studio , 我修改了build.gradle使用 http://jcenter.bintray.com/作为 url 而不是默认 https .

现在我收到以下错误:

Could not parse POM    
http://jcenter.bintray.com/com/android/tools/build/gradle/1.1.0/gradle-1.1.0.pom

我想知道为什么 https可能会导致 NT 服务帐户出现问题,但不会导致正常交互帐户出现问题。有没有办法解决它?如果没有,如果有人对上述错误的含义有所了解,将不胜感激。问候。

最佳答案

当程序作为交互式用户成功执行但在作为服务运行时失败时,一个常见的问题来源是围绕执行的用户设置已更改。例如,当您运行 Gradle 时,在 %USERPROFILE%\.gradle 中有设置(通常是 c:\users\ ,对于您以交互方式登录的帐户与运行服务的帐户不同。)

当您作为服务运行时,会有不同的用户配置文件,或者可能根本没有。让您的批处理脚本转储环境(在 .bat 文件顶部附近添加“set” - 这将转储按字母顺序排列的环境变量列表),并将其作为服务运行时的输出与您以交互方式运行时的输出进行比较。查看是否定义了 USERPROFILE,以及是否将服务区域中的 .gradle 文件夹与您自己的 .gradle 文件夹进行比较。

除了 Gradle 设置,Gradle 的缓存通常也在 .gradle 文件夹下。您的缓存可能包含与服务缓存不同的项目,如果您的构建尝试连接的外部存储库中存在身份验证问题,这可能很重要(同样,可能是由于用户配置中的凭据不同) !)

处理 https 请求的工具可能会在您的用户配置文件中的某处查找证书。您可能已经接受了未包含在服务的已接受证书中的证书(用于“识别” https 服务器)。这些可能在您的用户配置文件中的 .keystore 文件中。 Java 的 keytool.exe 可以帮助解码和转储这个文件。

您的构建中涉及的其他工具也可能具有存储在 USERPROFILE 空间中的设置,这些设置在您的空间和服务帐户的空间之间有所不同 - 例如 Android (.android)、Java、Maven (.m2)、Git (.gitconfig)、等等

关于android - Gradle 在交互式帐户下运行良好,但在 NT 服务下运行不正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36731213/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com