Я только что загрузил Maven и пытался запустить простую команду, найденную на странице "Maven за пять минут" (http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html). Это команда:
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Когда я запускаю его, я получаю сообщение об ошибке с сертификатом SSL и не могу загрузить из центрального репозитория Maven в https://repo.maven.apache.org/maven2. Ошибка: "SunCertPathBuilderException: невозможно найти допустимый путь сертификации для запрошенной цели".
Я сижу за корпоративным брандмауэром и правильно настроил параметры прокси для доступа http
и https
через файл settings.xml
. Я сомневаюсь, что каждый, кто загружает Maven и запускает его в первый раз, должен импортировать сертификат SSL в репозиторий Maven, поэтому проблема должна быть с прокси-сервером. Кто-нибудь имеет опыт с этим?
Здесь трассировка стека в полном режиме отладки (-X):
mvn archetype:generate -DgroupId=com.mycompany.app -DartifactId=my-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
Apache Maven 3.2.3 (33f8c3e1027c3ddde99d3cdebad2656a31e8fdf4; 2014-08-11T22: 58: 10 + 02: 00) Maven: C:\Projects\maven\bin.. Версия Java: 1.7.0_45, поставщик: Oracle Corporation Java home: C:\Program Files\Java\jdk1.7.0_45\jre Язык по умолчанию: it_IT, кодировка платформы: Cp1252 Название ОС: "windows 7", версия: "6.1", arch: "amd64", family: "windows" [DEBUG] Использование разъема WagonRepositoryConnector с приоритетом 0.0 для https://repo.maven.apache.org/maven2 через *****: 8080 с имя пользователя = *****, пароль = *** Скачивание: https://repo.maven.apache.org/maven2/org/apache/maven/plugins/maven-clean-plugin/2.5/maven-clean-plugin-2.5.pom[WARNING] Не удалось получить дескриптор плагина для org.apache.maven.plugins: maven-clean-plugin: 2.5: Плагин org.apache.maven.plugins: maven-clean-plugin: 2.5 или один из его не удалось разрешить: не удалось прочитать дескриптор артефакта для org.apache.maven.plugins: maven-clean-plugin: jar: 2.5 org.apache.maven.plugin.PluginResolutionException: плагин org.apache.maven.plugins: maven-clean-plugin: 2.5 или один из его не удалось разрешить: не удалось прочитать дескриптор артефакта для org.apache.maven.plugins: maven-clean-plugin: jar: 2.5 at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:122) at org.apache.maven.plugin.internal.DefaultMavenPluginManager.getPluginDescriptor(DefaultMavenPluginManager.java:148) at org.apache.maven.plugin.DefaultBuildPluginManager.loadPlugin(DefaultBuildPluginManager.java:81) at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFromProject(DefaultPluginPrefixResolver.java:138) at org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolveFromProject(DefaultPluginPrefixResolver.java:121) на org.apache.maven.plugin.prefix.internal.DefaultPluginPrefixResolver.resolve(DefaultPluginPrefixResolver.java:85) на org.apache.maven.lifecycle.internal.MojoDescriptorCreator.findPluginForPrefix(MojoDescriptorCreator.java:260) на org.apache.maven.lifecycle.internal.MojoDescriptorCreator.getMojoDescriptor(MojoDescriptorCreator.java:220) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:103) at org.apache.maven.lifecycle.internal.DefaultLifecycleTaskSegmentCalculator.calculateTaskSegments(DefaultLifecycleTaskSegmentCalculator.java:83) на org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:85) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:347) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:154) на org.apache.maven.cli.MavenCli.execute(MavenCli.java:582) на org.apache.maven.cli.MavenCli.doMain(MavenCli.java:214) на org.apache.maven.cli.MavenCli.main(MavenCli.java:158) at sun.reflect.NativeMethodAccessorImpl.invoke0 (собственный метод) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) в java.lang.reflect.Method.invoke(Method.java:606) на org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:289) на org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:229) на org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:415) на org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:356) Вызвано: org.eclipse.aether.resolution.ArtifactDescriptorException: не удалось читать дескриптор артефакта для org.apache.maven.plugins: Maven-плагин очистки: банка: 2,5 at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:349) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.readArtifactDescriptor(DefaultArtifactDescriptorReader.java:231) at org.eclipse.aether.internal.impl.DefaultRepositorySystem.readArtifactDescriptor(DefaultRepositorySystem.java:288) at org.apache.maven.plugin.internal.DefaultPluginDependenciesResolver.resolve(DefaultPluginDependenciesResolver.java:108) ... еще 23 Причина: org.eclipse.aether.resolution.ArtifactResolutionException: не удалось передать артефакт org.apache.maven.plugins: maven-clean-plugin: pom: 2.5 от/до центрального (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: Не удалось создать путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:459) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifacts(DefaultArtifactResolver.java:262) at org.eclipse.aether.internal.impl.DefaultArtifactResolver.resolveArtifact(DefaultArtifactResolver.java:239) at org.apache.maven.repository.internal.DefaultArtifactDescriptorReader.loadPom(DefaultArtifactDescriptorReader.java:334) ... еще 26 Вызвано: org.eclipse.aether.transfer.ArtifactTransferException: не удалось передать артефакт org.apache.maven.plugins: maven-clean-plugin: pom: 2.5 от/до центрального (https://repo.maven.apache.org/maven2): sun.security.validator.ValidatorException: Не удалось создать путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели на org.eclipse.aether.connector.wagon.WagonRepositoryConnector $6.wrap(WagonRepositoryConnector.java:1016) на org.eclipse.aether.connector.wagon.WagonRepositoryConnector $6.wrap(WagonRepositoryConnector.java:1004) на org.eclipse.aether.connector.wagon.WagonRepositoryConnector $GetTask.run(WagonRepositoryConnector.java:725) at org.eclipse.aether.util.concurrency.RunnableErrorForwarder $1.run(RunnableErrorForwarder.java:67) в java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) в java.util.concurrent.ThreadPoolExecutor $Worker.run(ThreadPoolExecutor.java:615) в java.lang.Thread.run(Thread.java:744) Вызвано: org.apache.maven.wagon.TransferFailedException: sun.security.validator.ValidatorException: не удалось создать путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:935) at org.apache.maven.wagon.StreamWagon.getInputStream(StreamWagon.java:116) на org.apache.maven.wagon.StreamWagon.getIfNewer(StreamWagon.java:88) на org.apache.maven.wagon.StreamWagon.get(StreamWagon.java:61) на org.eclipse.aether.connector.wagon.WagonRepositoryConnector $GetTask.run(WagonRepositoryConnector.java:660) ... еще 4 Вызвано: javax.net.ssl.SSLHandshakeException: sun.security.validator.ValidatorException: не удалось создать путь к PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели at sun.security.ssl.Alerts.getSSLException(Alerts.java:192) at sun.security.ssl.SSLSocketImpl.fatal(SSLSocketImpl.java:1884) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:276) at sun.security.ssl.Handshaker.fatalSE(Handshaker.java:270) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1341) at sun.security.ssl.ClientHandshaker.processMessage(ClientHandshaker.java:153) at sun.security.ssl.Handshaker.processLoop(Handshaker.java:868) at sun.security.ssl.Handshaker.process_record (Handshaker.java:804) at sun.security.ssl.SSLSocketImpl.readRecord(SSLSocketImpl.java:1016) at sun.security.ssl.SSLSocketImpl.performInitialHandshake(SSLSocketImpl.java:1312) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1339) at sun.security.ssl.SSLSocketImpl.startHandshake(SSLSocketImpl.java:1323) на org.apache.maven.wagon.providers.http.httpclient.conn.ssl.SSLConnectionSocketFactory.createLayeredSocket(SSLConnectionSocketFactory.java:280) на org.apache.maven.wagon.providers.http.httpclient.impl.conn.HttpClientConnectionOperator.upgrade(HttpClientConnectionOperator.java:167) на org.apache.maven.wagon.providers.http.httpclient.impl.conn.PoolingHttpClientConnectionManager.upgrade(PoolingHttpClientConnectionManager.java:329) на org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.establishRoute(MainClientExec.java:392) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.MainClientExec.execute(MainClientExec.java:218) на org.apache.maven.wagon.providers.http.httpclient.impl.execchain.ProtocolExec.execute(ProtocolExec.java:194) at org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RetryExec.execute(RetryExec.java:85) на org.apache.maven.wagon.providers.http.httpclient.impl.execchain.RedirectExec.execute(RedirectExec.java:108) на org.apache.maven.wagon.providers.http.httpclient.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java:186) на org.apache.maven.wagon.providers.http.httpclient.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java:82) at org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.execute(AbstractHttpClientWagon.java:756) на org.apache.maven.wagon.providers.http.AbstractHttpClientWagon.fillInputData(AbstractHttpClientWagon.java:854) ... еще 8 Причина: sun.security.validator.ValidatorException: Не удалось создать путь PKIX: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:385) at sun.security.validator.PKIXValidator.engineValidate(PKIXValidator.java:292) at sun.security.validator.Validator.validate(Validator.java:260) at sun.security.ssl.X509TrustManagerImpl.validate(X509TrustManagerImpl.java:326) at sun.security.ssl.X509TrustManagerImpl.checkTrusted(X509TrustManagerImpl.java:231) at sun.security.ssl.X509TrustManagerImpl.checkServerTrusted(X509TrustManagerImpl.java:126) at sun.security.ssl.ClientHandshaker.serverCertificate(ClientHandshaker.java:1323) ... еще 27 Вызывается: sun.security.provider.certpath.SunCertPathBuilderException: невозможно найти действительный путь сертификации для запрошенной цели at sun.security.provider.certpath.SunCertPathBuilder.engineBuild(SunCertPathBuilder.java:196) в java.security.cert.CertPathBuilder.build(CertPathBuilder.java:268) at sun.security.validator.PKIXValidator.doBuild(PKIXValidator.java:380) ... 33 подробнее