Скопируйте новейший файл JAR с сервера Nexus с Gradle
Я пытаюсь скопировать новейший файл jar (com.bar.baz:mapping:0.0.1-SNAPSHOT
) с моего сервера Nexus, используя Gradle.
Загрузка определенной версии работает с использованием следующего build.gradle:
apply plugin: "java"
repositories {
maven {
credentials {
username = "${mavenUser}"
password = "${mavenPassword}"
}
url "https://nexus.cluster.foo.cloud/repository/maven-snapshots"
authentication {
basic(BasicAuthentication)
}
}
}
configurations {
copyConf
}
dependencies {
copyConf group: "com.bar.baz", name: "mapping", version: "0.0.1-20190508.085532-7"
}
task copyTask(type: Copy) {
from configurations.copyConf
into "."
}
Но я хочу скачать новейшую версию 0.0.1-20190508.085532-7
0.0.1-SNAPSHOT
, а не конкретную версию 0.0.1-20190508.085532-7
. Это возможно? Как?
Использование версии "latest.integration"
вместо "0.0.1-20190508.085532-7"
(и вызов gradle copyTask --refresh-dependencies --stacktrace
) дает:
FAILURE: Build failed with an exception.
* What went wrong: Could not resolve all files for configuration ':copyConf'.
> Could not find any matches for com.bar.baz:mapping:latest.integration as no versions
of com.bar.baz:mapping are available. Searched in
the following locations:
https://nexus.cluster.foo.cloud/repository/maven-snapshots/com/ba/baz/mapping/maven-metadata.xml
https://nexus.cluster.foo.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1-SNAPSHOT/maven-metadata.xml
https://nexus.cluster.foo.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1-SNAPSHOT/mapping-0.0.1-20190508.085534-8.pom
https://nexus.cluster.foo.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1-SNAPSHOT/mapping-0.0.1-20190508.085534-8.jar
Required by:
project :
* Try: Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException:
Could not resolve all files for configuration ':copyConf'.
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:918)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access$1600(DefaultConfiguration.java:116)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration$ConfigurationFileCollection.getFiles(DefaultConfiguration.java:892)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.getFiles(DefaultConfiguration.java:404)
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration_Decorated.getFiles(Unknown
Source)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext$FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.java:206)
at org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:116)
…
Обновить:
Использование версии "0.0.1-SNAPSHOT"
вместо "0.0.1-20190508.085532-7"
(и вызов gradle copyTask --refresh-dependencies --stacktrace
) приводит к почти той же ошибке, единственная разница:
Использование версии "0.0.1"
вместо "0.0.1-20190508.085532-7"
(и вызов gradle copyTask --refresh-dependencies --stacktrace
) приводит к:
FAILURE: Build failed with an exception.
* What went wrong:
Could not resolve all files for configuration ':copyConf'.
> Could not resolve com.bar.baz:mapping:0.0.1.
Required by:
project :
> Could not resolve com.bar.baz:mapping:0.0.1.
> Could not get resource 'https://nexus.cluster.regulator.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1/mapping-0.0.1.pom'.
> Could not GET 'https://nexus.cluster.regulator.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1/mapping-0.0.1.pom'. Received status code 400 from server: Bad Request
* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Exception is:
org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration$ArtifactResolveException: Could not resolve all files for configuration ':copyConf'.
at org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:918)
...
Еще одно обновление:
Копирование самого нового файла JAR с сервера Nexus с Maven работает, со следующим pom.xml:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bar.baz</groupId>
<artifactId>TAndMapping</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>${project.artifactId}</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<mapping>mapping</mapping>
</properties>
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>3.1.1</version>
<executions>
<execution>
<id>copy</id>
<phase>package</phase>
<goals>
<goal>copy</goal>
</goals>
</execution>
</executions>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.bar.baz</groupId>
<artifactId>${mapping}</artifactId>
<version>0.0.1-SNAPSHOT</version>
<type>jar</type>
<overWrite>true</overWrite>
<destFileName>${mapping}.jar</destFileName>
</artifactItem>
</artifactItems>
<overWriteSnapshots>true</overWriteSnapshots>
</configuration>
</plugin>
</plugins>
</build>
<repositories>
<repository>
<id>nexus-snapshots</id>
<name>Snapshot</name>
<url>https://nexus.cluster.regulator.cloud/repository/maven-snapshots/</url>
</repository>
</repositories>
</project>
Еще одно обновление: переключаясь на Gradle 5.4.1, я получаю немного другие трассировки стека:
Для версии latest.integration
:
- Исключение: org.gradle.api.tasks.TaskExecutionException: не удалось выполнить задачу ': copyTask'. в org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38) в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.ExecuteTask: EventFiring.gav. gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.call(EventFiringTaskExecuter.java:52) в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.call(EventFiringTaskExecuter.gava.) internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) в org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute.ExeException(DefaultBuildOperationExecutor.java:165) в org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) в org.gradle.internal.operations.DefaultBuildOper ationExecutor.execute(DefaultBuildOperationExecutor.java:158) в org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) в org.gradle.internal.operations.DelegatingBuildOperationEx36j.jecutor.cutor.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49) в org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43) в org.gration.gra $ InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355) по адресу org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.jexextion.Gext_Game: 336) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ BuildOperationAwareExecutionAction.execute(DefaultTaskExec utionGraph.java:322) в org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker $ 1.execute(DefaultPlanExecutor.java:134) в org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker $ 1.execute(DefaultPlanExec9). по адресу org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.execute(DefaultPlanExecutor.java:202) по адресу org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.executeNextNode(DefaultPlanExecutor.javationgrag.lang atlange или .DefaultPlanExecutor $ ExecutorWorker.run(DefaultPlanExecutor.java:129) в org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) в org.gradle.internal.lecExp. java: 46) at org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) Причина: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration $ Исключить файлы файлы для исключения конфигурация ': полицейский yConf. в org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1195) в org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access $ 2100 (DefaultConfiguration.java:138) в org. gradle.api.internal.artifacts.configurations.DefaultConfiguration $ ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1170) в org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:72) в org.gradle.api. internal.artifacts.configurations.DefaultConfiguration.iterator(DefaultConfiguration.java:467) по адресу org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext $ FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.japigra).9 file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:114) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionR esolveContext.java:85) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext $ FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.java:195) в org.gradle.apes.olol. Java: 109) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionResolveContext.java:85) в org.gradle.api.internal.file.CompositeFileCollection $ 1.visFFileCollection1. atitFileCollection org.gradle.api.internal.file.CompositeFileTree $ FilteredFileTree.visitContents(CompositeFileTree.java:120) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveNested.grajolg.xt. org.olg. api.internal.file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:112) в org.gradle.api.internal.file.collections.Defaul tFileCollectionResolveContext.resolveAsFileCollections(DefaultFileCollectionResolveContext.java:92) по адресу org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext $ FileCollectionConverter.conv.FileFile.Col_File.Col_File.Col_File.Col_File.Col_File.Col_File.Col_File.Col_Col_Col_Col_Live.We_Col_Col_Col_Col_L_Col_M_C_T_L_C_L_C_L_C_L_C_T_L_C_L_C_L_Te_C_L_Te_Col_Te_Col_To. doResolve (DefaultFileCollectionResolveContext.java:109) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileCollections(DefaultFileCollectionResolveContext.java:92) на сайте 192) в org.gradle.api.internal.file.CompositeFileCollection.isEmpty(CompositeFileCollection.java:98) в org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmpaskEx6767) 67).api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOut ставитTaskExecuter.java:67) в org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46) в org.gradle.ecut.Exup.TupTo 94) в org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) в org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.MaseTexexTexTexTexTextMT.gradle.api.internal..internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)... еще 24 причин: org.gradle.internal.resolve.ModuleVersionNotFoundException: Не удалось найти совпадений для co m.bar.baz: отображение: последняя. интеграция, так как нет доступных версий com.bar.baz: отображение. Поиск в следующих местах:
Для версии 0.0.1-SNAPSHOT
:
- Исключение: org.gradle.api.tasks.TaskExecutionException: не удалось выполнить задачу ': copyTask'. в org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38) в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.ExecuteTask: EventFiring.gav. gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.call(EventFiringTaskExecuter.java:52) в org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter $ 1.call(EventFiringTaskExecuter.gava.) internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416) в org.gradle.internal.operations.DefaultBuildOperationExecutor $ CallableBuildOperationWorker.execute.ExeException(DefaultBuildOperationExecutor.java:165) в org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250) в org.gradle.internal.operations.DefaultBuildOper ationExecutor.execute(DefaultBuildOperationExecutor.java:158) в org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102) в org.gradle.internal.operations.DelegatingBuildOperationEx36j.jecutor.cutor.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:49) в org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:43) в org.gration.gra $ InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:355) по адресу org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.jexextion.Gext_Game: 336) at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph $ BuildOperationAwareExecutionAction.execute(DefaultTaskExec utionGraph.java:322) в org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker $ 1.execute(DefaultPlanExecutor.java:134) в org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker $ 1.execute(DefaultPlanExec9). по адресу org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.execute(DefaultPlanExecutor.java:202) по адресу org.gradle.execution.plan.DefaultPlanExecutor $ ExecutorWorker.executeNextNode(DefaultPlanExecutor.javationgrag.lang atlange или .DefaultPlanExecutor $ ExecutorWorker.run(DefaultPlanExecutor.java:129) в org.gradle.internal.concurrent.ExecutorPolicy $ CatchAndRecordFailures.onExecute(ExecutorPolicy.java:63) в org.gradle.internal.lecExp. java: 46) at org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) Причина: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration $ Исключить файлы файлы для исключения конфигурация ': полицейский yConf. в org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.rethrowFailure(DefaultConfiguration.java:1195) в org.gradle.api.internal.artifacts.configurations.DefaultConfiguration.access $ 2100 (DefaultConfiguration.java:138) в org. gradle.api.internal.artifacts.configurations.DefaultConfiguration $ ConfigurationFileCollection.getFiles(DefaultConfiguration.java:1170) в org.gradle.api.internal.file.AbstractFileCollection.iterator(AbstractFileCollection.java:72) в org.gradle.api. internal.artifacts.configurations.DefaultConfiguration.iterator(DefaultConfiguration.java:467) по адресу org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext $ FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.japigra).9 file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:114) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionR esolveContext.java:85) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext $ FileTreeConverter.convertInto(DefaultFileCollectionResolveContext.java:195) в org.gradle.apes.olol. Java: 109) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileTrees(DefaultFileCollectionResolveContext.java:85) в org.gradle.api.internal.file.CompositeFileCollection $ 1.visFFileCollection1. atitFileCollection org.gradle.api.internal.file.CompositeFileTree $ FilteredFileTree.visitContents(CompositeFileTree.java:120) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveNested.grajolg.xt. org.olg. api.internal.file.collections.DefaultFileCollectionResolveContext.doResolve(DefaultFileCollectionResolveContext.java:112) в org.gradle.api.internal.file.collections.Defaul tFileCollectionResolveContext.resolveAsFileCollections(DefaultFileCollectionResolveContext.java:92) по адресу org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext $ FileCollectionConverter.conv.FileFile.Col_File.Col_File.Col_File.Col_File.Col_File.Col_File.Col_File.Col_Col_Col_Col_Live.We_Col_Col_Col_Col_L_Col_M_C_T_L_C_L_C_L_C_L_C_T_L_C_L_C_L_Te_C_L_Te_Col_Te_Col_To. doResolve (DefaultFileCollectionResolveContext.java:109) в org.gradle.api.internal.file.collections.DefaultFileCollectionResolveContext.resolveAsFileCollections(DefaultFileCollectionResolveContext.java:92) на сайте 192) в org.gradle.api.internal.file.CompositeFileCollection.isEmpty(CompositeFileCollection.java:98) в org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmpaskEx6767) 67).api.internal.tasks.execution.ResolveBeforeExecutionOutputsTaskExecuter.execute(ResolveBeforeExecutionOut ставитTaskExecuter.java:67) в org.gradle.api.internal.tasks.execution.ResolveAfterPreviousExecutionStateTaskExecuter.execute(ResolveAfterPreviousExecutionStateTaskExecuter.java:46) в org.gradle.ecut.Exup.TupTo 94) в org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46) в org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.MaseTexexTexTexTexTextMT.gradle.api.internal..internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)... еще 24 причины: org.gradle.internal.resolve.ModuleVersionNotFoundException: Не удалось найти com.bar.baz: mappin г: 0.0.1-СНАПШОТ. Поиск в следующих местах:
Для версии 0.0.1
:
- Исключение: org.gradle.api.tasks.TaskExecutionException: не удалось выполнить задачу ': copyTask'. в org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:38)..... org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTavak):... еще 24 Причина: org.gradle.internal.resolve.ModuleVersionResolveException: Не удалось разрешить com.bar.baz: отображение: 0.0.1. Требуется: проект: Причина: org.gradle.internal.resolve.ModuleVersionResolveException: Не удалось разрешить com.bar.baz: отображение: 0.0.1. Вызывается: org.gradle.api.resources.ResourceException: Не удалось получить ресурс ' https://nexus.cluster.regulator.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1/mapping- 0.0.1.pom '. в org.gradle.internal.resource.ResourceExceptions.failure(ResourceExceptions.java:74)
... org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable.run(ThreadFactoryImpl.java:55) Причина: org.gradle.internal.resource.transport.http.HttpErrorStatusCodeException: не удалось получить //https:.cluster.regulator.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1/mapping-0.0.1.pom '. Получен код состояния 400 от сервера: неправильный запрос в org.gradle.internal.resource.transport.http.HttpClientHelper.processResponse(HttpClientHelper.java:160) в... org.gradle.internal.concurrent.ThreadFactoryImpl $ ManagedThreadRunnable ($ ThreadFactoryImpl.java:55) Причина: org.gradle.api.internal.artifacts.ivyservice.DefaultLenientConfiguration $ ArtifactResolveException: Не удалось разрешить все файлы для конфигурации ': copyConf'.... org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)... еще 24 Причина: org.gradle.internal.resolve.ModuleVersionResolveException: Не удалось разрешить com.bar. Баз: отображение: 0.0.1. Требуется: проект: Причина: org.gradle.internal.resolve.ModuleVersionResolveException: Не удалось разрешить com.bar.baz: отображение: 0.0.1. Вызывается: org.gradle.api.resources.ResourceException: Не удалось получить ресурс ' https://nexus.cluster.regulator.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1/mapping- 0.0.1.pom '. в org.gradle.internal.resource.ResourceExceptions.failure(ResourceExceptions.java:74)... в org.gradle.internal.resource.transfer.DefaultCacheAwareExternalResourceAccessor.copyToCache(DefaultCacheAwareExternalResourceAccessor.java:199) еще 110...
Еще одно обновление: благодаря ответу @Louis Jacomet я более подробно изучил наш сервер Nexus, и в настоящее время списки .../com/bar/baz/mapping/0.0.1-SNAPSHOT/maven-metadata.xml
:
<metadata modelVersion="1.1.0">
<groupId>com.bar.baz</groupId>
<artifactId>mapping</artifactId>
<version>0.0.1-SNAPSHOT</version>
<versioning>
<snapshot>
<timestamp>20190516.163117</timestamp>
<buildNumber>2</buildNumber>
</snapshot>
<lastUpdated>20190516163117</lastUpdated>
<snapshotVersions>
<snapshotVersion>
<extension>jar</extension>
<value>0.0.1-20190516.163116-1</value>
<updated>20190516163117</updated>
</snapshotVersion>
<snapshotVersion>
<extension>pom</extension>
<value>0.0.1-20190516.163116-1</value>
<updated>20190516163117</updated>
</snapshotVersion>
</snapshotVersions>
</versioning>
</metadata>
Следовательно, поиск Gradle в https://nexus.cluster.regulator.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1-SNAPSHOT/mapping-0.0.1-20190516.163117-2.jar
. Он не может найти его, потому что единственная версия, доступная на сервере Nexus, - это версия 0.0.1-20190516.163116-1
. Я не понимаю, почему это так, и думаю, что это ошибка Nexus, а не ошибка Gradle. Тем не менее, копирование через Maven (см. Второе обновление с pom.xml) все еще находит версию 0.0.1-SNAPSHOT, доступную на Nexus, и загружает ее.
Ответы
Ответ 1
Похоже, вы получаете
org.gradle.internal.resource.transport.http.HttpErrorStatusCodeException: Could not GET 'https://nexus.cluster.regulator.cloud/repository/maven-snapshots/com/bar/baz/mapping/0.0.1/mapping-0.0.1.pom'. Received status code 400 from server: Bad Request
Учитывая это, наиболее вероятным объяснением является неправильная конфигурация хранилища. Проверьте тип проверки подлинности, настроенный для Maven, или проверьте, есть ли в вашей внутренней организации дополнительные проверки, прежде чем принимать подключения к экземпляру Nexus.
Изменить после отредактированного вопроса
Очевидно, что существует несоответствие между файлом maven-metadata.xml
в Nexus и тем, что анализирует Gradle.
Как видно из кода:
if ("metadata/versioning/snapshot/timestamp".equals(getContext())) {
mavenMetadata.timestamp = getText();
}
if ("metadata/versioning/snapshot/buildNumber".equals(getContext())) {
mavenMetadata.buildNumber = getText();
}
if ("metadata/versioning/versions/version".equals(getContext())) {
mavenMetadata.versions.add(getText().trim());
}
Gradle смотрит только на узел snapshot
а не на snapshotVersions
.
Два варианта оттуда:
- Опубликуйте еще один снимок и посмотрите, разрешит ли это несоответствие
maven-metadata.xml
. - Подайте проблему против Gradle, попросив улучшить поддержку этих угловых случаев