Невозможно собрать проект grails 2.3.7, поскольку центральное хранилище maven перемещено в https. - PullRequest
3 голосов
/ 25 января 2020

Я не могу собрать свои проекты 2.3.7 grails, так как центральное хранилище maven перешло на https. Я попробовал рекомендации на этот пост: Запросы на http://repo1.maven.org/maven2/ вернуть 501 HTTPS Обязательный статус и тело

Однако у меня все еще есть проблема, потому что репозиторий Maven закодирован в рамки jars (grails-aether-2.3.7-sources.jar) Класс org.codehaus. groovy .grails.resolve.maven.aether.config.RepositoriesConfinguration. groovy.

RemoteRepository mavenCentral(Closure configurer = null) {
    final existing = repositories.find { ArtifactRepository ar -> ar.id == "mavenCentral" }
    if (!existing) {
        final repositoryBuilder = new RemoteRepository.Builder("mavenCentral", "default", "http://repo1.maven.org/maven2/")

        configureRepository(repositoryBuilder, configurer)
        final repository = repositoryBuilder.build()
        repositories << repository
        return repository
    }
    else {
        return existing
    }
}

Этот файл доступен только для чтения.

Как я могу решить эту проблему? Я не могу перенести проект на новую версию Grails по нескольким причинам. Это ошибка, которую я получил.

16: 14: 10 + /opt/grails-2.3.7/bin/grails --stacktrace clean 16:14:13 | Загрузка Grails 2.3.7 16:14:17 | Настройка classpath 16:14:20 | Устранение ошибки При получении зависимостей: не удалось прочитать дескриптор артефакта для xalan: serializer: jar: 2.7.1 (ПРИМЕЧАНИЕ. Трассировка стека была отфильтрована. Используйте --verbose, чтобы просмотреть всю трассировку.) 16:14:20 org.eclipse.aether .resolution.ArtifactDescriptorException: Не удалось прочитать дескриптор артефакта для xalan: serializer: jar: 2.7.1 16:14:20 в org. apache .maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader. java: 335) 16:14:20 в организации. apache .maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor (DefaultArtifactDescriptorReader. java: 217) 16:14:20 в org.eclipse.aether.internal.impl.DefaultDependencyCollector DefaultDependencyCollector. java: 466) 16:14:20 в org.eclipse.aether.internal.impl.DefaultDependencyCollector.collectDependencies (DefaultDependencyCollector. java: 261) 16:14:20 в org.eclipse.aetherin. impl.DefaultRepositorySystem.collectDependencies (DefaultRepositorySystem. java: 317) 16:14:20 at grails.util.Bu ildSettings.doResolve (BuildSettings. groovy: 513) 16:14:20 в grails.util.BuildSettings.doResolve (BuildSettings. groovy) 16:14:20 в grails.util.BuildSettings $ _getDefaultBuildDeilddenetallsssclosure. groovy: 774) 16:14:20 в grails.util.BuildSettings $ _getDefaultBuildDependencies_closure17.doCall (BuildSettings. groovy) 16:14:20 в grails.util.BuildSettings.getDefaultBuildDependencies (Build 1037) 7:. 16:14:20 at grails.util.BuildSettings.getBuildDependencies (BuildSettings. groovy: 673) 16:14:20 Вызывается: org.eclipse.aether.resolution.ArtifactResolutionException: Не удалось передать артефакт xalan: serializer: pom: 2.7.1 от / до mavenCentral (http://repo1.maven.org/maven2/): требуется HTTPS (501) 16:14:20 в org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (DefaultArtifactResolver. java: 460) 16:14:20 в org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts (DefaultArtifactResolver. java: 262) 16:14:20 в org.eclipse.aether.internal.impl.DefaultArt ifactResolver.resolveArtifact (DefaultArtifactResolver. java: 239) 16:14:20 в орг. apache .maven.repository.internal.DefaultArtifactDescriptorReader.loadPom (DefaultArtifactDescriptorReader. java: 320) 16:14:20 ... Еще 10 16:14:20 Причина: org.eclipse.aether.transfer.ArtifactTransferException: Невозможно передать артефакт xalan: serializer: pom: 2.7.1 из / в mavenCentral (http://repo1.maven.org/maven2/): HTTPS Требуется (501) 16:14:20 в org.eclipse.aether.connector.basi c .ArtifactTransportListener.transferFailed (ArtifactTransportListener. java: 43) 16:14:20 в org.eclipse.aether.connector.basi c .BasicRepositoryConnector $ TaskRunner.run (BasicRepositoryConnector. java: 342) 16:14:20 в org.eclipse.aether.util.concurrency.RunnableErrorForwarder $ 1.run (RunnableErrorForwarder. java: 67) 16:14 : 20 в org.eclipse.aether.connector.basi c .BasicRepositoryConnector $ DirectExecutor.execute (BasicRepositoryConnector. java: 649) 16:14:20 в org.eclipse.aether.connector.basi c .BasicRepositoryConnector .г и др (. BasicRepositoryConnector java 247) 16:14:20 at org.eclipse.aether.internal.impl.DefaultArtifactResolver.performDownloads (DefaultArtifactResolver. java: 536) 16:14:20 at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve (по умолчанию. java: 437) 16:14:20 ... еще 13 16:14:20 Вызывается: org. apache .http.client.HttpResponseException: HTTPS требуется (501) 16:14:20 в org.eclipse .aether.transport.http.HttpTransporter.handleStatus (HttpTransporter. java: 404) 16:14:20 в org.eclipse.aether.transport.http.HttpTransporter.execute (HttpTransporter. java: 298) : 20 at org.eclipse.aether.transport.http.HttpTransporter.implGet (HttpTransporter. java: 250) 16:14:20 at org.eclipse.aether.spi.connector.transport.AbstractTransporter.get (AbstractTransporter. java: 59) 16:14:20 в org.eclipse.aether.connector.basi c .BasicRepositoryConnector $ GetTaskRunner.runTask (BasicRepositoryConnector. java: 418) 16:14:20 в org.eclipse.aether. connector.basi c .BasicRepositoryConnector $ TaskRunner.run (BasicRepositoryConne ctor. java: 337) 16:14:20 ... еще 18

Ответы [ 2 ]

6 голосов
/ 28 января 2020

Вы должны закомментировать mavenCentral () в репозиториях и добавить соответствующий https URL, как предложено здесь: https://support.sonatype.com/hc/en-us/articles/360041287334

Пример:

repositories {
        inherits true // Whether to inherit repository definitions from plugins

        grailsPlugins()
        grailsHome()
        mavenLocal()
        grailsCentral()

        //comment following line to prevent use of default http url
//        mavenCentral()

        //add following https counterparts
        mavenRepo 'https://repo1.maven.org/maven2/'
        mavenRepo 'https://repo.maven.apache.org/maven2/'
        //if by any chance you can't connect to https url use this insecure url
//      mavenRepo 'http://insecure.repo1.maven.org/maven2/'

        mavenRepo 'https://repo.spring.io/milestone'
    }

Я пытался это для грааля 2.3.11 и java 1.7.0_242, и у меня это сработало. Надеюсь, это поможет.

0 голосов
/ 20 февраля 2020

Я имел дело с Grails 2.3.11, и я просто добавил следующий репозиторий и изменил любые другие внешние URL-адреса репозитория на https:

repositories {
        mavenRepo "https://repo.grails.org/grails/core"
...