Сборка Azure конвейера Gradle завершается неудачно для Spring - PullRequest
1 голос
/ 03 мая 2019

Я пытаюсь создать и развернуть Spring API в Azure через конвейер Yaml.Но я получаю сообщение об ошибке во время весенней сборки приложения, говоря:

Error: /home/vsts/work/1/s/gradlew failed with return code: 1

Не удалось найти org.springframework.boot: spring-data-rest-hal-browser:

Расширяя ошибку,

Starting a Gradle Daemon (subsequent builds will be faster)
> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Could not resolve all files for configuration ':compileClasspath'.
> Could not find org.springframework.boot:spring-data-rest-hal-browser:.
  Required by:
      project :

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

* Get more help at https://help.gradle.org

BUILD FAILED in 39s
1 actionable task: 1 executed
Error: /home/vsts/work/1/s/gradlew failed with return code: 1
    at ChildProcess.<anonymous> (/home/vsts/work/_tasks/Gradle_8d8eebd8-2b94-4c97-85af-839254cc6da4/2.151.0/node_modules/vsts-task-lib/toolrunner.js:639:25)
    at emitTwo (events.js:106:13)
    at ChildProcess.emit (events.js:191:7)
    at maybeClose (internal/child_process.js:886:16)
    at Process.ChildProcess._handle.onexit (internal/child_process.js:226:5)
##[error]Error: /home/vsts/work/1/s/gradlew failed with return code: 1
##[section]Finishing: Gradle

То, что я пробовал.

Я попытался изменить, указав версии Spring-data-rest-hal-browser в моем проекте.compile("org.springframework.boot:spring-data-rest-hal-browser") до compile("org.springframework.boot:spring-data-rest-hal-browser:2.4.0.RELEASE") и наконец compile("org.springframework.boot:spring-data-rest-hal-browser:3.0.8.RELEASE")

Но все равно та же ошибка:

Это мой текущий файл build.gradle в моем репо

plugins {
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}

apply plugin: 'io.spring.dependency-management'

group = 'com.test.spring.api'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.11'

repositories {
    mavenCentral()
}

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    runtimeOnly 'mysql:mysql-connector-java'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    developmentOnly("org.springframework.boot:spring-boot-devtools")

    compile("org.springframework.boot:spring-boot-starter-data-rest")
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile("org.springframework.boot:spring-data-rest-hal-browser")
    compile("org.springframework.data:spring-data-rest-webmvc:3.1.5.RELEASE")
}

И это мой текущий файл azure-pipelines.yml

# Maven
# Build your Java project and run tests with Apache Maven.
# Add steps that analyze code, save build artifacts, deploy, and more:
# https://docs.microsoft.com/azure/devops/pipelines/languages/java

trigger:
- master

pool:
  vmImage: 'Ubuntu-16.04'

steps:
- task: Gradle@2
  inputs:
    workingDirectory: '$(system.defaultWorkingDirectory)'
    gradleWrapperFile: 'gradlew'
    gradleOptions: '-Xmx3072m'
    javaHomeOption: 'JDKVersion'
    jdkVersionOption: '1.8'
    jdkArchitectureOption: 'x64'
    publishJUnitResults: false
    testResultsFiles: '**/TEST-*.xml'
    tasks: 'build'

- task: CopyFiles@2
  displayName: 'Copy Files to: Wireframe Directory on development server'
  inputs:
    SourceFolder: '$(Build.SourcesDirectory)'

    TargetFolder: '$(Build.ArtifactStagingDirectory)'

- script: 
      cd '$(Build.ArtifactStagingDirectory)';
      ls

- task: FtpUpload@1
  displayName: 'FTP Upload: $(Build.ArtifactStagingDirectory)'
  inputs:
    credentialsOption: inputs

    serverUrl: '[test server url]'

    username: '[test username] '

    password: '[test password] '

    rootDirectory: '$(Build.ArtifactStagingDirectory)'

    remoteDirectory: D:\home\site\wwwroot\webapps\ROOT\

    preservePaths: true

. Я хочу иметь возможность автоматического развертывания моего весеннего приложения на URL-адрес сервера, передавая свой код в него через конвейер разработки Devure Azure, который будет создавать иразверните приложение Spring.

Спасибо

1 Ответ

1 голос
/ 06 мая 2019

Итак, я решил эту проблему, внеся некоторые изменения в файл build.gradle и конвейер сборки, используя справку из репозитория Microsoft Azure для Intellij на Github: см. Здесь

Мой новый файл build.gradle выглядит так:

plugins {
    id 'org.jetbrains.intellij' version '0.4.1' apply false
    id 'org.springframework.boot' version '2.1.3.RELEASE'
    id 'java'
}

/**
 *This is task for update Gradle wrapper version.
 */
task wrapper(type: Wrapper) {
    gradleVersion = '4.7'
    distributionUrl = "https://services.gradle.org/distributions/gradle-${gradleVersion}-all.zip"
}

apply plugin: 'io.spring.dependency-management'

group = 'com.test.spring.api'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '1.8'

repositories {
    mavenCentral()
}

allprojects {

configurations {
    developmentOnly
    runtimeClasspath {
        extendsFrom developmentOnly
    }
}

    repositories {
        mavenCentral()
    }
}

task unitTest(type: Test) {
    exclude '**/ApplicationTests/**'
}

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-data-rest'
    runtimeOnly 'mysql:mysql-connector-java'
    testImplementation 'org.springframework.boot:spring-boot-starter-test'
    developmentOnly("org.springframework.boot:spring-boot-devtools")

    compile("org.springframework.boot:spring-boot-starter-data-rest")
    compile("org.springframework.boot:spring-boot-starter-data-jpa")
    compile group: 'org.springframework.data', name: 'spring-data-rest-hal-browser', version: '3.0.8.RELEASE'
    compile("org.springframework.data:spring-data-rest-webmvc:3.1.5.RELEASE")
}

    tasks.withType(JavaCompile) {
        options.compilerArgs << "-Xlint:unchecked" << "-Xlint:deprecation"
    }

    tasks.withType(FindBugs) {
        ignoreFailures = true
        reports {
            html { enabled = true }
            xml.enabled = !html.enabled
        }
    }

    /**
     * Preparing for release build
     */
    task prepRelease() {
    }

Также изменил файл azure-pipelines.yml, добавив в него трассировку стека и информацию, помогающую отлаживать другие ошибки gradle и build.

 tasks: 'build --stacktrace --info'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...