Gradle не будет компилироваться с локальными библиотеками - PullRequest
0 голосов
/ 24 марта 2020

Я конвертирую наше текущее приложение сборки Ant для использования Gradle. Я могу создать задачу компиляции, которая работает, когда я использую удаленное управление зависимостями Gradle через репозиторий Maven, но когда я настраиваю build.gradle для использования вместо этого локальных jar-файлов в каталоге lib, задача компиляции выдает ошибку, не в состоянии найти необходимые библиотеки .

Моя настройка build.gradle выглядит следующим образом:

plugins {
    id 'java'
    id 'java-library'
}

sourceCompatibility = 1.7
targetCompatibility = 1.7

ant.importBuild('build.xml');

defaultTasks 'war';

repositories {
    flatDir {
        dirs 'lib'
    }
    mavenCentral()
    jcenter()
}

def libDir = fileTree(dir:'lib', include: '**/*.jar')
def buildDir = fileTree(dir:'target', include: '**/*.jar')
def applicationBuild = 'application/target/classes'
def frameworkBuild = 'framework/service/target/classes'
def frameworkSrc = 'framework/service/src/main/java'

Задача заключается в следующем:

task compileFramework(type: JavaCompile) {
    dependsOn beansJar
    source = fileTree(dir: frameworkSrc)
    destinationDir = file(frameworkBuild)
    sourceCompatibility = 1.7
    targetCompatibility = 1.7
    options.debug = true
    options.deprecation = true
    exclude "xxx"
    classpath = files([libDir, buildDir, applicationBuild])

    copy {
        from frameworkBuild
        into frameworkSrc
        include "**/*.*"
        exclude "**/.java"
    }
}

задача не будет компилироваться при попытке настроить build.gradle для компиляции локальных jar

dependencies {
    implementation fileTree(dir:'lib', include: '**/*.jar')

Я также пытался ссылаться на каждый из моих jar-файлов напрямую, как это

implementation files('lib/jaxen-1.1.3.jar')

Задача успешно выполняется только при использовании удаленных репозиториев:

dependencies {
    implementation group: 'org.slf4j', name: 'slf4j-api', version: '1.5.8'
    testImplementation group: 'org.slf4j', name: 'slf4j-simple', version: '1.5.8'
    implementation group: 'org.springframework', name: 'spring-aop', version: '4.2.4.RELEASE'
    implementation group: 'org.springframework', name: 'spring-beans', version: '4.2.4.RELEASE'
    implementation group: 'org.springframework', name: 'spring-context', version: '4.2.4.RELEASE'
    implementation group: 'org.springframework', name: 'spring-context-support', version: '4.2.4.RELEASE'
    implementation group: 'org.springframework', name: 'spring-core', version: '4.2.4.RELEASE'
    implementation group: 'org.springframework', name: 'spring-expression', version: '4.2.4.RELEASE'
    implementation group: 'org.springframework', name: 'spring-jdbc', version: '4.2.4.RELEASE'
...

В сообщении об ошибке просто перечислены ссылки на библиотеки, которые он не смог найти

...java:114: error: cannot find symbol
            JsonRow<AuthenticatedBean> returnValue = new JsonRow<AuthenticatedBean>(authenticationBean);
                                                                 ^
  symbol:   class AuthenticatedBean
  location: class AuthorizationFilter
100 errors
2 warnings

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileFramework'.
> Compilation failed; see the compiler error output for details.

Что я неправильно сконфигурировал, чтобы он не компилировался с jar-файлами в моем каталоге lib?

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