Я работаю над проектом, который содержит серию подпроектов модулей для Spring XD, которые имеют временную зависимость от немодульного подпроекта, который использует Scala:
ext {
springXdVersion = '1.1.0.RELEASE'
moduleProjects = subprojects.findAll { project -> project.path.startsWith(':modules.')}
javaProjects = subprojects - (moduleProjects + nonJavaProjects)
}
configure(moduleProjects) { moduleProject ->
apply plugin: 'spring-xd-module'
}
project('core-dependency') {
apply plugin: 'scala'
// configuration/dependencies
}
project('modules.source.example') {
dependencies {
provided(":core-dependency")
}
}
// More modules bearing resemblance to modules.source.example
Core-dependency в конечном итоге устанавливается в пути к классам нашего xd-контейнера и таким образом предоставляется модулям во время выполнения.
К сожалению, кажется, что для каждого модуля, который его использует, зависимость от ядра перекомпилируется (что особенно дорого, поскольку оно также включает компиляцию scala). Это приводит к тому, что сборка выполняется к северу от 30 минут, что я хотел бы улучшить. Есть ли способ сократить время сборки? В идеале я бы не хотел перекомпилировать зависимость от ядра, но я не уверен, как это сделать, учитывая, что bootRepackage, по-видимому, отвечает за его запуск для каждого модуля. Я также пробовал другие приемы, такие как параллелизм, но пока это только заморозило мою систему. Я использую Gradle 2.1.
Я должен отметить, что в отчете профиля gradle указано, что для каждого модуля большая часть времени уходит на этап configureModule, который, согласно репозиторию spring-xd, выглядит следующим образом:
project.task('configureModule') << {
project.configurations.provided.resolvedConfiguration.firstLevelModuleDependencies.each {
excludeTransitiveDependencies(project, it)
}
}
configurations.exported.exclude module: 'core-dependency'
смог исправить проблему в этом последнем комментарии. Экспортируемая конфигурация представлена плагином spring-xd-modules, который используется для определения того, что входит в файл fatjar. - person Brandon McKenzie   schedule 29.05.2015