获取Maven(Java)中的目标目录路径

问题描述 投票:4回答:3

在Maven项目中,我想将一些测试结果写入项目目标目录中的文件中。每当我得到项目目录时,它实际上是获取IntelliJ项目目录而不是实际的Maven目录。

java maven
3个回答
4
投票

我得到了解决方案。以下是我的实施方式。我有自己的类CSVReader,它使用CSVReader库。我将结果写在目标目录下的results.csv文件中。

URL location = CSVReader.class.getProtectionDomain().getCodeSource().getLocation();
String path = location.getFile().replace("classes/","") + "results.csv";

在上面的代码中,我获取目标目录路径并删除classes / by string replace方法并附加我想要的文件名。希望这可以帮助某人。


4
投票

我使用了上面的答案稍作修改(我无法添加评论)。由于测试被放入'test'文件夹,它们的类将驻留在'target / test-classes'中(因此替换'classes'可能不会给你预期的结果)。相反,我使用了以下内容:

File targetClassesDir = new File(ExportDataTest.class.getProtectionDomain().getCodeSource().getLocation().getPath());
File targetDir = targetClassesDir.getParentFile();

4
投票

你也可以使用java.nio.file.Paths

URL url = Paths.get("target", "results.csv").toUri().toURL();
© www.soinside.com 2019 - 2024. All rights reserved.