Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何阻止Gradle复制生成文件夹中的资源_Java_Database_Gradle_Resources - Fatal编程技术网

Java 如何阻止Gradle复制生成文件夹中的资源

Java 如何阻止Gradle复制生成文件夹中的资源,java,database,gradle,resources,Java,Database,Gradle,Resources,我的resources文件夹中有一个数据库(.db文件),它在每次运行Java代码时都会被复制(我想将该文件保存在那里,因为它“只是”一个大学项目,为了简单起见,我需要它)。 这种复制导致了一个问题,即在运行时通过代码进行的所有更改每次都会丢失,因为这些更改只对生成文件夹中的副本进行,而不是对原始副本进行 如何使Gradle停止复制此文件并强制其使用资源文件夹中的原始文件 (类似的问题,但没有micronaut:)您可以在构建过程中排除某些文件 build.gradle文件: sourceSet

我的resources文件夹中有一个数据库(.db文件),它在每次运行Java代码时都会被复制(我想将该文件保存在那里,因为它“只是”一个大学项目,为了简单起见,我需要它)。 这种复制导致了一个问题,即在运行时通过代码进行的所有更改每次都会丢失,因为这些更改只对生成文件夹中的副本进行,而不是对原始副本进行

如何使Gradle停止复制此文件并强制其使用资源文件夹中的原始文件


(类似的问题,但没有micronaut:)

您可以在构建过程中排除某些文件

build.gradle文件

sourceSets {
    main {
        resources {
            exclude '*.db-File'
        }
    }
}

这很有效。谢谢但是在我可以通过DriverManager.getConnection(jdbc:sqlite::resources:+dbUrl)访问该文件之前;(dbUrl仅为“UserData.db”,因为它直接位于resources文件夹中,没有子目录)现在它只与以下对象一起工作:dbUrl=“src/main/resources/UserDb.db”;我想这有点脏。。有更好的方法解决这个问题吗?@fusion,理想情况下,您应该在环境变量中传递正在运行的数据库的连接URL。为了简化操作,您可以将连接URL放在“application.properties”文件中并从中读取。我决定在资源文件夹中的db中设置一些测试数据,让我的程序将此db复制到主目录(如果它还不存在)并从那里访问它。也许是更好的方法。不过谢谢你,这确实是我第一个想要的。