Я пытаюсь найти правильный способ объявления зависимости проекта в gradle, у меня есть два подпроекта:
Java-приложение
apply plugin: 'java'
sourceSets {main {java {srcDirs = ['./']}}}
dependencies{compile project(':p2')}
jar {manifest.attributes(
'Class-Path': configurations.runtime.files.collect { it.name }.join(''),
'Main-Class': 'Main'
)
}
и библиотека Java:
apply plugin: 'java-library'
sourceSets {main {java {srcDirs = ['./']}}
}
jar {
manifest.attributes(
'Class-Path': configurations.runtime.files.collect { it.name }.join(' ')
)
}
Корневой проект пуст, а настройки просто включают подпроекты.
dependencies
в проекте p1 только говорит о том, что p2 должен быть собран до p1, но как насчет настройки p2 как библиотеки для p1? Прямо сейчас, если прогон p1, я получил:
Exception in thread "main" java.lang.NoClassDefFoundError: StaticClass
Сборка Gradle в порядке:
C:\...>gradle build
BUILD SUCCESSFUL in 1s
4 actionable tasks: 4 up-to-date
Мне нужно скопировать и вставить p2.jar в каталог p1.jar, чтобы он работал правильно, как я могу заставить gradle сделать это для меня?