Я конвертирую наше текущее приложение сборки 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?