gpt4 book ai didi

java - 阻止 Gradle 在副本上修改我的图像/文件属性信息

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:20:51 24 4
gpt4 key购买 nike

我有一个应用程序可以根据上次修改日期等属性数据对图像进行排序。在我的单元测试资源文件夹中,我有图像测试/资源/文件夹,在调用“gradle build”时自动复制到构建/资源/测试。

问题是我需要文件具有相同的最后修改日期才能进行测试。

是否可以在我的构建脚本中使用 javas Files.copy 来移动数据并维护它的属性?或者有没有办法告诉 gradle 停止弄乱我的文件?

渐变任务:

task copyImages(type :Copy){
from 'src/test/resources'
into 'build/resources/test'
}

更新:

根据反馈,我的解决方案是使用 JavaExec

Gradle 构建脚本:

apply plugin: 'java'

repositories{
mavenCentral()
}


dependencies {
testCompile group: 'junit', name: 'junit', version: '4.+'
}

task(moveImages, dependsOn: 'classes', type: JavaExec){
main = 'com.lifehug.support.TestSupport'
classpath = sourceSets.test.runtimeClasspath
args 'src/test/resources/navigator', 'build/resources/test/navigator'
}

defaultTasks 'moveImages'

然后这是我用来移动图像的 java 文件

Java 文件:

public class TestSupport{

public static void main(String[] args) throws IOException {

if( args.length < 2) return;

final Path sourceDir = Paths.get(args[0]);
final Path targetDir = Paths.get(args[1]);

Files.walkFileTree(sourceDir, EnumSet.of(FileVisitOption.FOLLOW_LINKS), Integer.MAX_VALUE, new SimpleFileVisitor<Path>() {

@Override
public FileVisitResult preVisitDirectory(Path dir, BasicFileAttributes attrs) throws IOException {
Path target = targetDir.resolve(sourceDir.relativize(dir));
Files.copy(dir, target, StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING);
return FileVisitResult.CONTINUE;
}

@Override
public FileVisitResult visitFile(Path file, BasicFileAttributes attrs) throws IOException {
Files.copy(file, targetDir.resolve(sourceDir.relativize(file)), StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING);
return FileVisitResult.CONTINUE;
}

});

}

}

最佳答案

正在查看 Gradle Copy task文档我找不到保存文件时间戳的方法。做更多的研究显然有一个 open issue

作为解决方法,您可以使用替代方法进行复制,例如使用 ant.copy 作为 @dnault建议或仅使用 Java 代码(参见示例 here Java 6 和 Java 7)。

关于java - 阻止 Gradle 在副本上修改我的图像/文件属性信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29454650/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com