Gradle重复处理策略问题
Gradle Duplicate handling strategy Problem
我有一个多项目成绩。
root
+---- Project A
+---- Project B
项目 A 依赖于项目 B。但是 gradle 首先编译项目 A,然后编译项目 B。
我的文件:
settings.gradle
rootProject.name = 'rootProject'
include 'projecta'
include 'projectb'
项目 A build.gradle
dependencies {
implementation project(':projectb')
implementation fileTree(dir: '../lib', include: '*.jar')
}
当我构建时出现错误。但我不知道要复制处理策略
错误:
Execution failed for task ':projectb:distTar'.
> Entry /lib/projecta.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.
task copyJarToLib(type: Copy) {
if (project.name == 'projecta') {
copy {
from jar
into '../lib'
eachFile { file ->
println 'Copying file ' + file + ' to ./lib'
}
}
}
}
distZip.finalizedBy = [copyJarToLib]
但是它将文件复制到早期。我想在整个模块完成后复制文件
这对我有用
task copyDxComToLib(dependsOn: jar) {
doLast {
println '*** COPY PROJECTA.JAR TO LIB ***'
copy {
from '../build/projecta.jar'
into '../lib'
eachFile { file ->
println '*** Copying file ' + file + ' to ./lib'
}
}
println '*** COPY PROJECTA.JAR TO LIB ***'
}
}
distZip.dependsOn = [copyprojectaDxComToLib]
我有一个多项目成绩。
root
+---- Project A
+---- Project B
项目 A 依赖于项目 B。但是 gradle 首先编译项目 A,然后编译项目 B。
我的文件: settings.gradle
rootProject.name = 'rootProject'
include 'projecta'
include 'projectb'
项目 A build.gradle
dependencies {
implementation project(':projectb')
implementation fileTree(dir: '../lib', include: '*.jar')
}
当我构建时出现错误。但我不知道要复制处理策略
错误:
Execution failed for task ':projectb:distTar'.
> Entry /lib/projecta.jar is a duplicate but no duplicate handling strategy has been set. Please refer to https://docs.gradle.org/7.1/dsl/org.gradle.api.tasks.Copy.html#org.gradle.api.tasks.Copy:duplicatesStrategy for details.
task copyJarToLib(type: Copy) {
if (project.name == 'projecta') {
copy {
from jar
into '../lib'
eachFile { file ->
println 'Copying file ' + file + ' to ./lib'
}
}
}
}
distZip.finalizedBy = [copyJarToLib]
但是它将文件复制到早期。我想在整个模块完成后复制文件
这对我有用
task copyDxComToLib(dependsOn: jar) {
doLast {
println '*** COPY PROJECTA.JAR TO LIB ***'
copy {
from '../build/projecta.jar'
into '../lib'
eachFile { file ->
println '*** Copying file ' + file + ' to ./lib'
}
}
println '*** COPY PROJECTA.JAR TO LIB ***'
}
}
distZip.dependsOn = [copyprojectaDxComToLib]