Я пытаюсь настроить многомодульный Java-проект на основе Gradle в IntelliJ IDEA:
Три модуля (я полагаю), один из которых подразумевается как библиотека, используемая двумя другими модулями.Мне не удается правильно настроить конфигурацию проекта, может быть, кто-то может дать мне подсказку:
В зависимости от того, как я ссылаюсь на модуль библиотеки из других модулей, мне удается получить подсветку синтаксиса для поиска ссылочных (импортированных) классов, но это не работает для компилятора, который все еще жалуется на классы не найдены.Поэтому я предполагаю, что мой вопрос таков: как правильно ссылаться на классы в модуле библиотеки из двух других модулей в настройке структуры проекта?
Это настройка:
/..../pow/library
/spring
/droid
setup.gradle
:
rootProject.name = 'pow'
include 'library'
include 'spring'
include 'droid'
build.gradle
:
group 'org.rustygnome.pow'
version '1.0-SNAPSHOT'
allprojects {
group 'org.rustygnome.pow'
version '1.0-SNAPSHOT'
}
repositories {
mavenCentral()
}
dependencies {
}
library/build.gradle
:
apply plugin: 'java'
//sourceCompatibility = 1.8
repositories {
mavenCentral()
}
dependencies {
compile 'org.json:json:20171018'
compile 'com.googlecode.json-simple:json-simple:1.1.1'
compile files('/home/arkascha/Projects/Android/Sdk/platforms/android-26/android.jar')
testCompile group: 'junit', name: 'junit', version: '4.12'
}
spring/build.gradle
:
buildscript {
ext {
springBootVersion = '2.0.1.BUILD-SNAPSHOT'
}
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}")
}
}
apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'idea'
apply plugin: 'org.springframework.boot'
apply plugin: 'io.spring.dependency-management'
bootJar {
mainClassName = 'org.rustygnome.pow.spring.Application'
baseName = 'pow-spring-boot'
version = '0.1.0'
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
repositories {
mavenCentral()
maven { url "https://repo.spring.io/snapshot" }
}
dependencies {
compile('org.springframework.boot:spring-boot-starter')
runtime('org.springframework.boot:spring-boot-devtools')
testCompile('org.springframework.boot:spring-boot-starter-test')
}
Используя эту настройку, я хочу собрать модуль spring
.В источниках этих модулей я ссылаюсь на класс из модуля library
:
Application.java
:
package org.rustygnome.pow.spring;
import org.rustygnome.pow.lib.config.Config;
// other imports
@SpringBootApplication
public class Application implements ApplicationRunner {
static ApplicationContext appContext;
static ThreadPoolTaskExecutor taskExecutor;
Config config; // this one references
// further stuff
Модуль library
собран, проблем нет.
Но когда я пытаюсь построить spring module
, я получаю:
11: 14: 38 AM: Выполнение задачи 'build' ...
/data / Projects / pow / spring / src / main / java / org / rustygnome / pow / spring / Application.java: 3:
ошибка: пакет org.rustygnome.pow.lib.config не существует
import org.rustygnome.pow.lib.config.Config;
// ... другие вопросы ...