【发布时间】:2021-10-31 06:53:15
【问题描述】:
Java 版本:1.8
Gradle 版本 5.6.4
JUNIT:junit-jupiter:5.7.0
所以:Linux
我有这个项目结构:
项目
1.域名
2.核心
3.批处理
该项目有 4 个文件“build.gradle”,每个上下文和主文件各 1 个,示例:
Main Build.Gradle(根文件夹):
configurations {
compileClasspath
}
subprojects {
group = 'project'
version = 'project-1.0.0'
apply plugin: 'java'
apply plugin: 'eclipse'
sourceCompatibility = 1.8
repositories {
mavenCentral()
maven {
url fintecc_aws_url
credentials(AwsCredentials) {
accessKey fintecc_aws_userkey
secretKey fintecc_aws_secretkey
}
}
}
jar {
version = "0.1-SNAPSHOT"
from ("${projectDir}/src/main/java") {
include("**/*.json")
include("**/*.html")
}
}
ext {
fffCommonsVersion = "2.0.11-BETA15"
orgProjectLombok = "1.16.8"
slf4jLogVersion = "1.7.5"
commonsIoCommonsIo = 2.6
//
//
testJunitVersion = "5.3.1"
testMockitoVersion = "2.23.4"
}
dependencies {
//
// Lombok
compileOnly("org.projectlombok:lombok:${orgProjectLombok}")
testCompileOnly("org.projectlombok:lombok:${orgProjectLombok}")
annotationProcessor("org.projectlombok:lombok:${orgProjectLombok}")
testAnnotationProcessor("org.projectlombok:lombok:${orgProjectLombok}")
//
// Junit/Tests
testImplementation("org.junit.jupiter:junit-jupiter:5.7.0")
testImplementation("org.mockito:mockito-core:2.23.4")
//
// Commons and Log
compile("fff.commons:serverless:${fffCommonsVersion}")
implementation("org.slf4j:slf4j-log4j12:${slf4jLogVersion}")
compile("commons-io:commons-io:${commonsIoCommonsIo}")
}
test {
useJUnitPlatform()
}
}
每个子项目build.gradle(batch/文件夹):
project(':batch') {
sourceCompatibility = 1.8
eclipse {
project {
name = 'ttt_project_batch'
}
}
dependencies {
compile project(':core'),
"com.amazonaws:aws-java-sdk-sqs:1.11.586",
"com.amazonaws:aws-java-sdk-s3:1.11.250",
"com.amazonaws:aws-lambda-java-core:1.0.0",
"mysql:mysql-connector-java:6.0.2"
}
jar {
baseName = 'batch'
version = '0.1-SNAPSHOT'
from {
configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
from ("${projectDir}/src/main/java") {
include("**/*.json")
include("**/*.xml")
}
into('lib') {
from configurations.compile
}
manifest {
def manifestFile = "${projectDir}/META-INF/MANIFEST.MF"
if (new File(manifestFile).exists()) {
from File(manifestFile)
}
else {
manifest.attributes(
'Main-Class': 'config.BatchConfig',
"Project":project.name,
"Specification-Vendor":"XXXXX",
"Created-By":org.gradle.internal.jvm.Jvm.current())
}
}
}
}
我的 settings.gradle 文件:
include 'domain', 'core', 'batch'
好的,项目编译正确。当我添加 JUNIT 测试时,我能够在 Eclipse 中完美运行...进入 batch/src/test/java/
但是当我在终端运行命令“build gradle”来生成 JAR 文件时,JUNIT 的依赖没有被识别,像这样:
Execution failed for task ':batch:compileTestJava'.
error: package org.junit does not exist
import static org.junit.Assert.assertEquals;
有人经历过吗?我相信原因是项目正在模块化
【问题讨论】: