在Gradle、Spring引导插件和Nexus的安装任务期间未找到工件

在Gradle、Spring引导插件和Nexus的安装任务期间未找到工件,gradle,spring-boot,nexus,Gradle,Spring Boot,Nexus,在一个使用Spring Boot插件的Gradle项目和Nexusrepo manager上,我在安装任务期间遇到了一个ArtifactNotFoundException 为了给出更多的解释,如线程中所述,为了避免Spring启动错误,我在安装任务中添加了与Spring启动父级pom的关系 这样做,我将面临以下问题: $ gradle install --stacktrace :compileJava :processResources UP-TO-DATE :classes :jar :ins

在一个使用Spring Boot插件的Gradle项目和Nexusrepo manager上,我在
安装
任务期间遇到了一个
ArtifactNotFoundException

为了给出更多的解释,如线程中所述,为了避免Spring启动错误,我在安装任务中添加了与
Spring启动父级
pom的关系

这样做,我将面临以下问题:

$ gradle install --stacktrace
:compileJava
:processResources UP-TO-DATE
:classes
:jar
:installDownloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://central
Error transferring file: central
Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://repo1.maven.org/maven2
Error transferring file: repo1.maven.org
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':install'.
> Could not publish configuration 'archives'
   > Unable to initialize POM pom-default.xml: Cannot find parent: org.springframework.boot:spring-boot-starter-parent for project: com.mygroup:myjar:jar:1.0.6 for project com.mygroup:myjar:jar:1.0.6

* Try:
Run with --info or --debug option to get more log output.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':install'.
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:69)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
        at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:35)
        at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:64)
        at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:58)
        at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:42)
        at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:52)
        at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:53)
        at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:43)
        at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:296)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.executeTask(AbstractTaskPlanExecutor.java:79)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.processTask(AbstractTaskPlanExecutor.java:63)
        at org.gradle.execution.taskgraph.AbstractTaskPlanExecutor$TaskExecutorWorker.run(AbstractTaskPlanExecutor.java:51)
        at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:23)
        at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:86)
        at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
        at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
        at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
        at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
        at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
        at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:148)
        at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:105)
        at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:85)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter$DefaultBuildController.run(InProcessBuildActionExecuter.java:81)
        at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:33)
        at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:24)
        at org.gradle.launcher.exec.InProcessBuildActionExecuter.execute(InProcessBuildActionExecuter.java:39)
        at org.gradle.launcher.daemon.server.exec.ExecuteBuild.doBuild(ExecuteBuild.java:45)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.WatchForDisconnection.execute(WatchForDisconnection.java:35)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.ResetDeprecationLogger.execute(ResetDeprecationLogger.java:24)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.StartStopIfBuildAndStop.execute(StartStopIfBuildAndStop.java:33)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.ReturnResult.execute(ReturnResult.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:71)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput$2.call(ForwardClientInput.java:69)
        at org.gradle.util.Swapper.swap(Swapper.java:38)
        at org.gradle.launcher.daemon.server.exec.ForwardClientInput.execute(ForwardClientInput.java:69)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.LogToClient.doBuild(LogToClient.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.EstablishBuildEnvironment.doBuild(EstablishBuildEnvironment.java:60)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy$1.run(StartBuildOrRespondWithBusy.java:45)
        at org.gradle.launcher.daemon.server.DaemonStateCoordinator.runCommand(DaemonStateCoordinator.java:184)
        at org.gradle.launcher.daemon.server.exec.StartBuildOrRespondWithBusy.doBuild(StartBuildOrRespondWithBusy.java:49)
        at org.gradle.launcher.daemon.server.exec.BuildCommandOnly.execute(BuildCommandOnly.java:34)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.HandleStop.execute(HandleStop.java:30)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.DaemonHygieneAction.execute(DaemonHygieneAction.java:39)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.CatchAndForwardDaemonFailure.execute(CatchAndForwardDaemonFailure.java:32)
        at org.gradle.launcher.daemon.server.exec.DaemonCommandExecution.proceed(DaemonCommandExecution.java:125)
        at org.gradle.launcher.daemon.server.exec.DefaultDaemonCommandExecuter.executeCommand(DefaultDaemonCommandExecuter.java:51)
        at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.handleCommand(DefaultIncomingConnectionHandler.java:155)
        at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.receiveAndHandleCommand(DefaultIncomingConnectionHandler.java:128)
        at org.gradle.launcher.daemon.server.DefaultIncomingConnectionHandler$ConnectionWorker.run(DefaultIncomingConnectionHandler.java:116)
        at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:64)
Caused by: org.gradle.api.artifacts.PublishException: Could not publish configuration 'archives'
        at org.gradle.api.tasks.Upload.upload(Upload.java:66)
        at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:63)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.doExecute(AnnotationProcessingTaskFactory.java:218)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:211)
        at org.gradle.api.internal.project.taskfactory.AnnotationProcessingTaskFactory$StandardTaskAction.execute(AnnotationProcessingTaskFactory.java:200)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:570)
        at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:553)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:80)
        at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:61)
        ... 66 more
Caused by: Unable to initialize POM pom-default.xml: Cannot find parent: org.springframework.boot:spring-boot-starter-parent for project: com.mygroup:myjar:jar:1.0.6 for project com.mygroup:myjar:jar:1.0.6
        at org.apache.maven.artifact.ant.Pom.initialiseMavenProject(Pom.java:217)
        at org.apache.maven.artifact.ant.AbstractArtifactTask.initializePom(AbstractArtifactTask.java:527)
        at org.apache.maven.artifact.ant.InstallDeployTaskSupport.initializePom(InstallDeployTaskSupport.java:59)
        at org.apache.maven.artifact.ant.InstallTask.doExecute(InstallTask.java:50)
        at org.gradle.api.publication.maven.internal.ant.CustomInstallTask.doExecute(CustomInstallTask.java:34)
        at org.apache.maven.artifact.ant.AbstractArtifactTask.execute(AbstractArtifactTask.java:751)
        at org.gradle.api.publication.maven.internal.ant.AbstractMavenResolver.execute(AbstractMavenResolver.java:111)
        at org.gradle.api.publication.maven.internal.ant.AbstractMavenResolver.publish(AbstractMavenResolver.java:102)
        at org.gradle.api.publication.maven.internal.ant.AbstractMavenResolver.publish(AbstractMavenResolver.java:80)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyPublisher.publish(DefaultIvyDependencyPublisher.java:42)
        at org.gradle.api.internal.artifacts.ivyservice.IvyBackedArtifactPublisher$1.execute(IvyBackedArtifactPublisher.java:79)
        at org.gradle.api.internal.artifacts.ivyservice.IvyBackedArtifactPublisher$1.execute(IvyBackedArtifactPublisher.java:54)
        at org.gradle.internal.Transformers$3.transform(Transformers.java:131)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:61)
        at org.gradle.api.internal.artifacts.ivyservice.DefaultIvyContextManager.withIvy(DefaultIvyContextManager.java:39)
        at org.gradle.api.internal.artifacts.ivyservice.IvyBackedArtifactPublisher.publish(IvyBackedArtifactPublisher.java:54)
        at org.gradle.api.tasks.Upload.upload(Upload.java:64)
        ... 74 more
Caused by: org.apache.maven.project.ProjectBuildingException: Cannot find parent: org.springframework.boot:spring-boot-starter-parent for project: com.mygroup:myjar:jar:1.0.6 for project com.mygroup:myjar:jar:1.0.6
        at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1396)
        at org.apache.maven.project.DefaultMavenProjectBuilder.buildInternal(DefaultMavenProjectBuilder.java:823)
        at org.apache.maven.project.DefaultMavenProjectBuilder.buildFromSourceFileInternal(DefaultMavenProjectBuilder.java:508)
        at org.apache.maven.project.DefaultMavenProjectBuilder.build(DefaultMavenProjectBuilder.java:200)
        at org.apache.maven.artifact.ant.Pom.initialiseMavenProject(Pom.java:211)
        ... 90 more
Caused by: org.apache.maven.project.ProjectBuildingException: POM 'org.springframework.boot:spring-boot-starter-parent' not found in repository: Unable to download the artifact from any repository

  org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)

 for project org.springframework.boot:spring-boot-starter-parent
        at org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:605)
        at org.apache.maven.project.DefaultMavenProjectBuilder.assembleLineage(DefaultMavenProjectBuilder.java:1392)
        ... 94 more
Caused by: org.apache.maven.artifact.resolver.ArtifactNotFoundException: Unable to download the artifact from any repository

  org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE

from the specified remote repositories:
  central (http://repo1.maven.org/maven2)


        at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:228)
        at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:90)
        at org.apache.maven.project.DefaultMavenProjectBuilder.findModelFromRepository(DefaultMavenProjectBuilder.java:558)
        ... 95 more
Caused by: org.apache.maven.wagon.ResourceDoesNotExistException: Unable to download the artifact from any repository
        at org.apache.maven.artifact.manager.DefaultWagonManager.getArtifact(DefaultWagonManager.java:404)
        at org.apache.maven.artifact.resolver.DefaultArtifactResolver.resolve(DefaultArtifactResolver.java:216)
        ... 97 more
使用
--debug
时,我还发现:

11:10:30.612 [ERROR] [system.err] Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://central
11:10:32.887 [ERROR] [system.err] Error transferring file: central
11:10:32.888 [INFO] [system.out] [WARNING] Unable to get resource 'org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE' from repository central (http://central): Error transferring file: central
11:10:32.889 [ERROR] [system.err] Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://repo1.maven.org/maven2
11:10:35.152 [ERROR] [system.err] Error transferring file: repo1.maven.org
11:10:35.153 [INFO] [system.out] [WARNING] Unable to get resource 'org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE' from repository central (http://repo1.maven.org/maven2): Error transferring file: repo1.maven.org
11:10:35.156 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] An error has occurred while processing the Maven artifact tasks.
 Diagnosis:

Unable to initialize POM pom-default.xml: Cannot find parent: org.springframework.boot:spring-boot-starter-parent for project: com.toto:myproject:jar:1.0.6 for project com.toto:myproject:jar:1.0.6
Unable to download the artifact from any repository
乍一看,这个错误似乎很容易理解:在Nexus上找不到工件(
spring boot starter父级
)。 问题是我的Nexus被配置为访问Maven Central以获取依赖项(如果未托管)

我检查了我的组、工件ID和版本是否正确(
org.springframework.boot:springbootstarter父级:pom:1.2.3.RELEASE
)。 在这一点上没有问题,我可以在Maven Central站点上找到这种依赖关系

为了检查问题是否来自
spring boot starter父级的声明方式(在安装任务中,而不是在
依赖项部分),我创建了一个非常简单的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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.3.RELEASE</version>
    </parent>

    <groupId>toto</groupId>
    <artifactId>maven-test-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>Draft project</name>

</project>
[...]
<mirrors>

    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://mynexus.net.intra:8080/nexus/content/groups/public/</url>
    </mirror>

[...]
</mirrors>

[...]
<profiles>
    <profile>
        <id>nexus</id>
        <!-- Enable snapshots for the built in central repo to direct -->
        <!-- all requests to nexus via the mirror -->
        <repositories>
            <repository>
                <id>central</id>
                <url>http://central</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>central</id>
                <url>http://central</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>

    [...]
</profiles>

[...]
为了回答一些评论,并检查我的Nexus是否声明正确,我从本地回购和Gradle缓存中删除了
ojdbc6
,然后重新启动了
Gradle安装。
以下是日志:

$ gradle clean install
To honour the JVM settings for this build a new JVM will be forked. Please consider using the daemon: http://gradle.org/docs/2.0/userguide/gradle_daemon.html.
:clean
:compileJava
Download http://mynexus.fr.net.intra:8080/nexus/content/groups/public/oracle/ojdbc6/12.1.0.1/ojdbc6-12.1.0.1.jar
:processResources
:classes
:jar
:installDownloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://central
Error transferring file: central
Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://repo1.maven.org/maven2
Error transferring file: repo1.maven.org
 FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':install'.
> Could not publish configuration 'archives'
   > Unable to initialize POM pom-default.xml: Cannot find parent: org.springframework.boot:spring-boot-starter-parent for project: com.mygroup:myjar:jar:1.0.6 for project com.mygroup:myjar:jar:1.0.6

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.

BUILD FAILED

Total time: 14.268 secs
从ojdbc6依赖项中可以看出,使用Nexus来解决它
在我看来,我的Nexus声明在安装任务定义中似乎没有得到考虑 我将在本节中寻找阅读此声明的方法

谢谢,
Thomas

您的项目配置实际上并没有与Nexus对话。Gradle任务似乎是由Maven完成的,而不是通过settings.xml配置为连接到Nexus公共组,而是仍然尝试直接访问中央存储库


您可能需要配置Maven,也可能需要配置Gradle来连接Nexus。可以找到这两个方面的详细信息

我做了更多的调查,现在我确信这个问题来自Gradle
安装任务
中的一个缺陷

首先,这里是我的Maven
settings.xml中的Nexus配置:

<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/maven-v4_0_0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>1.2.3.RELEASE</version>
    </parent>

    <groupId>toto</groupId>
    <artifactId>maven-test-project</artifactId>
    <version>1.0-SNAPSHOT</version>
    <packaging>jar</packaging>
    <name>Draft project</name>

</project>
[...]
<mirrors>

    <mirror>
        <id>nexus</id>
        <mirrorOf>*</mirrorOf>
        <url>http://mynexus.net.intra:8080/nexus/content/groups/public/</url>
    </mirror>

[...]
</mirrors>

[...]
<profiles>
    <profile>
        <id>nexus</id>
        <!-- Enable snapshots for the built in central repo to direct -->
        <!-- all requests to nexus via the mirror -->
        <repositories>
            <repository>
                <id>central</id>
                <url>http://central</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </repository>
        </repositories>
        <pluginRepositories>
            <pluginRepository>
                <id>central</id>
                <url>http://central</url>
                <releases>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </releases>
                <snapshots>
                    <enabled>true</enabled>
                    <updatePolicy>always</updatePolicy>
                </snapshots>
            </pluginRepository>
        </pluginRepositories>
    </profile>

    [...]
</profiles>

[...]
我们看到Gradle首先尝试从
http://central
,然后从
http://repo1.maven.org/maven2
(通常的Maven Central)

如果我更改Maven
settings.xml
,则从
http://central
http://toto
,日志变成:

11:21:29.746 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':install' is up-to-date
11:21:29.747 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':install' (up-to-date check took 0.001 secs) due to:
  Task has not declared any outputs.
11:21:29.748 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':install'.
11:21:29.749 [INFO] [org.gradle.api.Task] Publishing configuration: configuration ':archives'
11:21:29.757 [INFO] [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyPublisher] Publishing to org.gradle.api.publication.maven.internal.ant.BaseMavenInstaller@3bd6b327
11:21:29.783 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.PropertyHelper
11:21:29.784 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected Java version: 1.8 in: C:\tools\Java\jdk1.8.0_25\jre
11:21:29.784 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected OS: Windows 7
11:21:29.794 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.ComponentHelper
11:21:29.797 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Project base dir set to: C:\workspace\myjar
11:21:29.830 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Maven Ant Tasks version: 2.1.3
11:21:29.833 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
11:21:29.873 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
11:21:29.992 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: org.codehaus.plexus.PlexusContainer
11:21:30.048 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
11:21:30.051 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
11:21:30.075 [ERROR] [system.err] Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://toto
11:21:30.088 [ERROR] [system.err] Error transferring file: toto
11:21:30.089 [INFO] [system.out] [WARNING] Unable to get resource 'org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE' from repository central (http://toto): Error transferring file: toto
11:21:30.090 [ERROR] [system.err] Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://repo1.maven.org/maven2
11:21:32.354 [ERROR] [system.err] Error transferring file: repo1.maven.org
11:21:32.355 [INFO] [system.out] [WARNING] Unable to get resource 'org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE' from repository central (http://repo1.maven.org/maven2): Error transferring file: repo1.maven.org
11:21:32.357 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] An error has occurred while processing the Maven artifact tasks.
 Diagnosis:

Unable to initialize POM pom-default.xml: Cannot find parent: org.springframework.boot:spring-boot-starter-parent for project: com.mygroup:myjar:jar:1.0.6 for project com.mygroup:myjar:jar:1.0.6
Unable to download the artifact from any repository


11:21:32.358 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':install'
14:14:08.474 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':install'
14:14:08.474 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':install' is up-to-date
14:14:08.475 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':install' (up-to-date check took 0.001 secs) due to:
  Task has not declared any outputs.
14:14:08.475 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':install'.
14:14:08.476 [INFO] [org.gradle.api.Task] Publishing configuration: configuration ':archives'
14:14:08.481 [INFO] [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyPublisher] Publishing to org.gradle.api.publication.maven.internal.ant.BaseMavenInstaller@74eaee53
14:14:08.504 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.PropertyHelper
14:14:08.504 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected Java version: 1.8 in: C:\tools\Java\jdk1.8.0_25\jre
14:14:08.505 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected OS: Windows 7
14:14:08.515 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.ComponentHelper
14:14:08.519 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Project base dir set to: C:\workspace\myjar
14:14:08.555 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Maven Ant Tasks version: 2.1.3
14:14:08.558 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
14:14:08.599 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
14:14:08.725 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: org.codehaus.plexus.PlexusContainer
14:14:08.798 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
14:14:08.800 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
14:14:08.892 [INFO] [system.out] [INFO] Installing C:\workspace\myjar\target\libs\myjar-1.0.6.jar to C:\workspace\maven-3.0.4\repository\com\mygroup\myjar\1.0.6\myjar-1.0.6.jar
14:14:08.905 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':install'
可以看出,Gradle现在首先尝试从
http://toto
,然后它仍然会转到Maven Central。
这意味着Gradle:

  • 有效读取我的Maven
    settings.xml
  • 但是,无法在安装任务中访问Maven镜像定义
对我来说,主要问题就在这里

最后,如果我现在将
spring boot starter父项
依赖项添加到我的maven本地存储库
,日志将变成:

11:21:29.746 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':install' is up-to-date
11:21:29.747 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':install' (up-to-date check took 0.001 secs) due to:
  Task has not declared any outputs.
11:21:29.748 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':install'.
11:21:29.749 [INFO] [org.gradle.api.Task] Publishing configuration: configuration ':archives'
11:21:29.757 [INFO] [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyPublisher] Publishing to org.gradle.api.publication.maven.internal.ant.BaseMavenInstaller@3bd6b327
11:21:29.783 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.PropertyHelper
11:21:29.784 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected Java version: 1.8 in: C:\tools\Java\jdk1.8.0_25\jre
11:21:29.784 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected OS: Windows 7
11:21:29.794 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.ComponentHelper
11:21:29.797 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Project base dir set to: C:\workspace\myjar
11:21:29.830 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Maven Ant Tasks version: 2.1.3
11:21:29.833 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
11:21:29.873 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
11:21:29.992 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: org.codehaus.plexus.PlexusContainer
11:21:30.048 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
11:21:30.051 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
11:21:30.075 [ERROR] [system.err] Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://toto
11:21:30.088 [ERROR] [system.err] Error transferring file: toto
11:21:30.089 [INFO] [system.out] [WARNING] Unable to get resource 'org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE' from repository central (http://toto): Error transferring file: toto
11:21:30.090 [ERROR] [system.err] Downloading: org/springframework/boot/spring-boot-starter-parent/1.2.3.RELEASE/spring-boot-starter-parent-1.2.3.RELEASE.pom from repository central at http://repo1.maven.org/maven2
11:21:32.354 [ERROR] [system.err] Error transferring file: repo1.maven.org
11:21:32.355 [INFO] [system.out] [WARNING] Unable to get resource 'org.springframework.boot:spring-boot-starter-parent:pom:1.2.3.RELEASE' from repository central (http://repo1.maven.org/maven2): Error transferring file: repo1.maven.org
11:21:32.357 [INFO] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] An error has occurred while processing the Maven artifact tasks.
 Diagnosis:

Unable to initialize POM pom-default.xml: Cannot find parent: org.springframework.boot:spring-boot-starter-parent for project: com.mygroup:myjar:jar:1.0.6 for project com.mygroup:myjar:jar:1.0.6
Unable to download the artifact from any repository


11:21:32.358 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':install'
14:14:08.474 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Starting to execute task ':install'
14:14:08.474 [DEBUG] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Determining if task ':install' is up-to-date
14:14:08.475 [INFO] [org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter] Executing task ':install' (up-to-date check took 0.001 secs) due to:
  Task has not declared any outputs.
14:14:08.475 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter] Executing actions for task ':install'.
14:14:08.476 [INFO] [org.gradle.api.Task] Publishing configuration: configuration ':archives'
14:14:08.481 [INFO] [org.gradle.api.internal.artifacts.ivyservice.DefaultIvyDependencyPublisher] Publishing to org.gradle.api.publication.maven.internal.ant.BaseMavenInstaller@74eaee53
14:14:08.504 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.PropertyHelper
14:14:08.504 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected Java version: 1.8 in: C:\tools\Java\jdk1.8.0_25\jre
14:14:08.505 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Detected OS: Windows 7
14:14:08.515 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: ant.ComponentHelper
14:14:08.519 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Project base dir set to: C:\workspace\myjar
14:14:08.555 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Maven Ant Tasks version: 2.1.3
14:14:08.558 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
14:14:08.599 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
14:14:08.725 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] Adding reference: org.codehaus.plexus.PlexusContainer
14:14:08.798 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\Users\536355\.m2\settings.xml
14:14:08.800 [DEBUG] [org.gradle.api.internal.project.ant.AntLoggingAdapter] [ant:null] Loading Maven settings file: C:\workspace\maven-3.0.4\conf\settings.xml
14:14:08.892 [INFO] [system.out] [INFO] Installing C:\workspace\myjar\target\libs\myjar-1.0.6.jar to C:\workspace\maven-3.0.4\repository\com\mygroup\myjar\1.0.6\myjar-1.0.6.jar
14:14:08.905 [DEBUG] [org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter] Finished executing task ':install'
在这种情况下,构建是成功的


因此,从这些线索来看,我认为Gradle安装任务中有一个bug,严重考虑了Maven
settings.xml中的repo配置,帮助我从Gradle 2.2切换到2.9

你用的是哪个版本

同样在切换到SpringBoot1.3.0之后,我不再需要这个块了

install {
    repositories.mavenInstaller {
        pom.project {
          parent {
            groupId 'org.springframework.boot'
            artifactId 'spring-boot-starter-parent'
            version "${project.bootVersion}"
          }
        }
    }
}

您是否可以直接访问Maven Central,还是所有内容都通过Nexus路由而被阻止?另外,当Gradle验证生成的pom文件时,pom引用的所有内容都必须可以从Maven Central获得。如果工件不在Maven Central中,或者对Maven Central的访问受到限制,验证将失败。您是如何在Gradle脚本中配置Nexus实例的?请记住,Gradle不使用Maven settings.xml,因此您必须在Gradle构建或初始化脚本中配置您的Nexus。Gradle不使用Maven解析来自Maven存储库的依赖项,而是在后台使用Ivy。所以Maven settings.xml等不会影响Gradle的构建。我知道这一点,但是Gradle中有很多bug,它会返回到读取settings.xml。无论如何。。本章还详细介绍了Gradle的配置。另外,它可能仍然在spring引导工具中使用Maven,这就是我链接到它的原因。我宁愿怀疑他没有配置Gradle从他的Nexus实例获取依赖项(否则它会出现在日志文件中)。不幸的是,我确实配置Gradle使用我的Nexus实例。其他依赖项有效地取自Nexus。我将编辑我的问题以添加buid.gradle和其他一些日志。事实上,在我看来,
install
任务的定制没有考虑我的Nexus声明。