Сборка/классы проекта многомодульной библиотеки, сборка/создание и сборка/ресурсы, не сгенерированные во время моей сборJAVA

Программисты JAVA общаются здесь
Ответить Пред. темаСлед. тема
Anonymous
 Сборка/классы проекта многомодульной библиотеки, сборка/создание и сборка/ресурсы, не сгенерированные во время моей сбор

Сообщение Anonymous »

Я работаю над проектом многомодульной библиотеки с настройкой сборки Gradle и столкнулся с проблемой, из-за которой некоторые каталоги не генерируются должным образом.
В частности, в модулях каталог сборки: каталоги build/classes, build/generated и build/resources отсутствуют, а build/libs, build/publications и Для каждого модуля создаются каталоги build/tmp.
Модули зависят друг от друга.
Использование Gradle 8.4
Вот мой settings.gradle(корневой каталог):

Код: Выделить всё

rootProject.name = 'project-root'
include('module1')
include('module1-test')
include('module2')
include('module2-test')
include('module3')
include('module3-test')
// ... other models

rootProject.children.each { it.projectDir = new File(settingsDir, sprintf("../%s", it.name)) }
А вот мой build.gradle(корневой каталог):

Код: Выделить всё

plugins {
id 'idea'
id 'java'
id 'java-library'
id 'maven-publish'
id 'jacoco'
id 'checkstyle'
id 'com.github.spotbugs' version "${spotbugs_version}"
id 'io.spring.dependency-management' version "${spring_dependency_management_version}"
}

subprojects {

apply plugin: 'idea'
apply plugin: 'java'
apply plugin: 'java-library'
apply plugin: 'maven-publish'
apply plugin: 'jacoco'
apply plugin: 'checkstyle'
apply plugin: 'io.spring.dependency-management'

repositories {
mavenCentral()
}

java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
sourceCompatibility = JavaVersion.VERSION_17
targetCompatibility = JavaVersion.VERSION_17
}

tasks.withType(JavaCompile).configureEach {
options.encoding = "UTF-8"
options.compilerArgs.add("-parameters")
}

sourceSets {
main {
java {
srcDirs = ['src/main/java']
}
resources {
srcDirs = ['src/main/resources']
}
}
test {
java {
srcDirs = ['src/test/java']
}
resources {
srcDirs = ['src/test/resources']
}
}
}

tasks.named('jar') {

manifest {
attributes(
'Implementation-Title': project.name,
'Implementation-Version': project.version
)
}
archiveBaseName.set(rootProject.name)
}

java {
withJavadocJar()
withSourcesJar()
}

dependencyManagement {
imports {
mavenBom("org.springframework.boot:spring-boot-dependencies:$spring_boot_version")
}
}

idea {
module {
downloadJavadoc = true
downloadSources = true
}
}

test {
useJUnitPlatform()
finalizedBy jacocoTestReport
testLogging {
events "passed", "skipped", "failed"
}
}

jacoco {
toolVersion = "0.8.11"
reportsDirectory = layout.buildDirectory.dir("$buildDir/reports/jacoco")
}

jacocoTestCoverageVerification {
violationRules {
rule {
element = 'CLASS'
limit {
counter = 'LINE'
minimum = 0.90
}
limit {
counter = 'BRANCH'
minimum = 0.90
}
excludes = [
'com.example.project.',
'com.example.project.',
// ...  other excludes
]
}
}
}

checkstyle {
toolVersion = checkstyle_version
}

check.dependsOn(
checkstyleMain,
checkstyleTest,
test,
jacocoTestReport,
jacocoTestCoverageVerification
)

publishing {

repositories {
maven {
name = "GitHubPackages"
url = "https://maven.pkg.github.com/username/repository"
credentials {
username = System.getenv("GITHUB_USERNAME")
password = System.getenv("GITHUB_TOKEN")
}
}
}

publications {
mavenJava(MavenPublication) {
groupId group
artifactId project.name
version = project.version
from(components.java)
}
}
}
}

dependencies {
implementation project(':module1')
implementation project(':module1-test')
implementation project(':module2')
implementation project(':module2-test')
implementation project(':module3')
implementation project(':module3-test')
// ... other dependencies
}
Структура проекта:

Код: Выделить всё

project-root/
├── settings.gradle
├── build.gradle
├── model1/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── example/
│       │   │           └── model1/
│       │   │               └── Model1.java
│       │   └── resources/
│       │       └── application.properties
│       └── test/
│           ├── java/
│           │   └── com/
│           │       └── example/
│           │           └── model1/
│           │               └── Model1Test.java
│           └── resources/
│               └── test-application.properties
├── model1-test/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── example/
│       │   │           └── model1test/
│       │   │               └── Model1TestHelper.java
│       │   └── resources/
│       │       └── helper-config.properties
│       └── test/
│           ├── java/
│           │   └── com/
│           │       └── example/
│           │           └── model1test/
│           │               └── Model1TestHelperTest.java
│           └── resources/
│               └── test-helper-config.properties
├── model2/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── example/
│       │   │           └── model2/
│       │   │               └── Model2.java
│       │   └── resources/
│       │       └── application.properties
│       └── test/
│           ├── java/
│           │   └── com/
│           │       └── example/
│           │           └── model2/
│           │               └── Model2Test.java
│           └── resources/
│               └── test-application.properties
├── model2-test/
│   ├── build.gradle
│   └── src/
│       ├── main/
│       │   ├── java/
│       │   │   └── com/
│       │   │       └── example/
│       │   │           └── model2test/
│       │   │               └── Model2TestHelper.java
│       │   └── resources/
│       │       └── helper-config.properties
│       └── test/
│           ├── java/
│           │   └── com/
│           │       └── example/
│           │           └── model2test/
│           │               └── Model2TestHelperTest.java
│           └── resources/
│               └── test-helper-config.properties
Пример сборки модуля: build.gradle(module1)

Код: Выделить всё

dependencies {
implementation project(':module2')
implementation project(':module3')

implementation group: 'org.apache.commons', name: 'commons-lang3'
compileOnly group: 'org.projectlombok', name: 'lombok'
annotationProcessor group: 'org.projectlombok', name: 'lombok'

testImplementation project(':module1-test')
}
В чем может быть причина этой проблемы и как ее решить?
Я был бы признателен за любые идеи или предложения о том, что может произойти. неправильно и какие изменения мне следует внести, чтобы обеспечить создание всех ожидаемых каталогов.
Заранее большое спасибо!

Подробнее здесь: https://stackoverflow.com/questions/788 ... -resources
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • AGP 8.4+ и Hilt (модули библиотеки Android в многомодульной архитектуре, R8)
    Anonymous » » в форуме Android
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Сгенерированные сгенерированные документы отсутствуют символы в соответствующем шаблоне
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Простой импорт отсутствует в многомодульной Java с Maven
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Простой импорт отсутствует в многомодульной Java с Maven
    Anonymous » » в форуме JAVA
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Разница между многомодульной (pom) и системой модулей Java
    Anonymous » » в форуме JAVA
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous

Вернуться в «JAVA»