当前位置: 首页 > 知识库问答 >
问题:

在 ubuntu 中下载 gradle 插件时的 Java 安全问题

桂飞翼
2023-03-14

我们的gradle构建使用SVN工具插件,在windows上运行没有问题。使用构建问题的构建脚本部分如下所示:

buildscript {
    repositories {
        maven {
            url "https://plugins.gradle.org/m2/"
        }
    }
    dependencies {
        classpath "at.bxm.gradleplugins:gradle-svntools-plugin:2.2.1"
    }
}
apply plugin: "at.bxm.svntools"

我尝试在ubuntu Ubuntu 18.04 LTS上运行相同的版本,但我收到了以下错误消息:

Could not resolve all artifacts for configuration ':classpath'.
   > Could not resolve at.bxm.gradleplugins:gradle-svntools-plugin:2.2.1.
     Required by:
         project :
      > Could not resolve at.bxm.gradleplugins:gradle-svntools-plugin:2.2.1.
         > Could not get resource 'https://plugins.gradle.org/m2/at/bxm/gradleplugins/gradle-svntools-plugin/2.2.1/gradle-svntools-plugin-2.2.1.pom'.
            > Could not GET 'https://plugins.gradle.org/m2/at/bxm/gradleplugins/gradle-svntools-plugin/2.2.1/gradle-svntools-plugin-2.2.1.pom'.
               > java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty

我在两台机器上使用相同版本的Java和Gradle。StackTrace显示SSL证书有一些问题。我应该怎么做才能在我的脚本中使用gradle插件存储库?

Caused by: org.gradle.internal.resource.transport.http.HttpRequestException: Could not GET 'https://plugins.gradle.org/m2/at/bxm/gradleplugins/gradle-svntools-plugin/2.2.1/gradle-svntools-plugin-2.2.1.pom'.
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:96)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performRawGet(HttpClientHelper.java:80)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performGet(HttpClientHelper.java:84)
        at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:43)
        at org.gradle.internal.resource.transport.http.HttpResourceAccessor.openResource(HttpResourceAccessor.java:29)
        at org.gradle.internal.resource.transfer.DefaultExternalResourceConnector.openResource(DefaultExternalResourceConnector.java:56)
        at org.gradle.internal.resource.transfer.ProgressLoggingExternalResourceAccessor.openResource(ProgressLoggingExternalResourceAccessor.java:37)
        at org.gradle.internal.resource.transfer.AccessorBackedExternalResource.withContentIfPresent(AccessorBackedExternalResource.java:130)
        at org.gradle.internal.resource.BuildOperationFiringExternalResourceDecorator$11.call(BuildOperationFiringExternalResourceDecorator.java:237)
        at org.gradle.internal.resource.BuildOperationFiringExternalResourceDecorator$11.call(BuildOperationFiringExternalResourceDecorator.java:229)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:331)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:321)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:185)
        at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:107)
        at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
        at org.gradle.internal.resource.BuildOperationFiringExternalResourceDecorator.withContentIfPresent(BuildOperationFiringExternalResourceDecorator.java:229)
        at org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.copyToCache(DefaultCacheAwareExternalResourceAccessor.java:199)
        ... 153 more
Caused by: javax.net.ssl.SSLException: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:396)
        at org.apache.http.conn.ssl.SSLConnectionSocketFactory.connectSocket(SSLConnectionSocketFactory.java:355)
        at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java:142)
        at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java:373)
        at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:381)
        at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java:237)
        at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java:185)
        at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java:89)
        at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java:111)
        at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:185)
        at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:83)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:148)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performHttpRequest(HttpClientHelper.java:126)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.executeGetOrHead(HttpClientHelper.java:103)
        at org.gradle.internal.resource.transport.http.HttpClientHelper.performRequest(HttpClientHelper.java:94)
        ... 169 more
Caused by: java.lang.RuntimeException: Unexpected error: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        ... 184 more
Caused by: java.security.InvalidAlgorithmParameterException: the trustAnchors parameter must be non-empty
        ... 184 more

共有1个答案

邰宇
2023-03-14

问题是卡塞。仅仅删除OpenJDK并安装oracle JDK8是不够的。您应该更新/etc/ssl/certs/java/cacerts(删除cacerts并从{ORACLE_JDK_HOME}/jre/lib/security/cacerts复制new on)。我第一次这样做我跑步

update-ca-certificates --fresh

之后,但后来它不起作用,所以下次我再次复制证书时,没有运行更新ca证书,这是全新的,它起作用了

 类似资料:
  • 问题内容: 我想要一个文件夹,叫它docs,其中包含登录用户可以下载的文档。这些都有非常敏感的信息。如何最好地保护文件夹。我来自PHP背景,因此想知道是否忽略了任何内容。 我将使用.htaccess保护该文件夹,并且当用户单击“下载”时,他们将永远不会显示该文件夹。下载是通过php强制删除它们的文件夹名称。 当然,为了保护用户区域,我正在所有输入字段上进行卫生和验证,并注意SQLInjection

  • 主要内容:了解Redis版本,在线安装Redis,启动Redis服务端,启动Redis客户端,验证是否成功安装,Linux源码包安装,网页版Redis工具,Redis可视化工具相比于 Windows 系统而言,Redis 更适合于在 Linux 系统上使用,这是由 Redis 的底层机制决定的。本节介绍如何在 Linux 发行版 Ubuntu 系统上安装 Redis 数据库。 了解Redis版本 Redis 版本号采用国际标准惯例,即“主版本号 副版本号 补丁级别”。 一个偶数的副版本号表示一个

  • in Android Studio: go to File → Settings → Plugins → Browse repositories and search for 插件名 或者 in Android Studio: go to download it jar and install File → Settings → Plugins → Install plugin from disk

  • 我正在编写gradle脚本,我需要从artifactory下载多个jar文件,我在gradle脚本中使用了应用插件'java',可以轻松地从artifactory中获取这些jar文件,但如果我应用了这个插件,它会自动运行jar任务,并创建我不想要的jar。有没有一种方法可以在使用/不使用java插件的情况下从artifactory下载jar文件,这样jar任务就不会触发。 输出:下面显示了在脚本中

  • 下载、安装国内期货交易插件 OpenQuant系统中可以由第三方服务商或者开发者自行进行扩展,例如行情源的接入、交易通道的接入、历史数据源的接入等等,这些扩展我们称之为插件(Plugins)。 上期技术公司的CTP系统是获取国内期货实时行情、进行交易的主要平台。各个主流期货经纪商均支持客户通过CTP柜台进行期货、期权的交易。您可以在SmartQuant中文网站(http://www.smartqu