在我的(Gradle)构建文件中使用正斜杠而不是File.separator是否可以?

时间:2011-12-29 03:35:19

标签: java gradle

我没有看到任何明显的问题,但我想知道在我编写构建文件时是否可以使用/而不是File.separator。使用File.separator会使读取某些路径变得非常困难。例如:

dependsDir = "${buildDir}${File.separator}depends"

VS

dependsDir = "${buildDir}/depends"

4 个答案:

答案 0 :(得分:22)

正斜杠(/)在Windows上是合法的path separator,也是Unix(包括Linux和Mac OSX)。因此,除非您需要在其他操作系统上运行构建,否则它应该不是问题。

答案 1 :(得分:5)

Gradle在很大程度上只依靠java.io.File来执行所有与路径相关的操作,而后者又在Windows和Linux上正常处理/。因此,在Gradle API中使用/不太可能导致任何问题。

我在一个在Windows和Linux上运行的相当大的项目中使用/,到目前为止我没有遇到任何问题。希望这会有所帮助。

答案 2 :(得分:1)

在文件类

 public static final String separator = "" + separatorChar;

其中separatorChar是系统相关的默认名称分隔符。这个领域是 初始化为包含系统值的第一个字符 财产file.separator。在UNIX系统上的价值 字段为'/';在Microsoft Windows系统上,它是'\'
和separatorChar由

创建
static private FileSystem fs = FileSystem.getFileSystem();
public static final char separatorChar = fs.getSeparator();

对于基于操作系统的用户,使用File.separator时将更改分隔符 通过在代码中使用/,它将不支持其他操作系统。

答案 3 :(得分:0)

需要时,使用平台无关常量 endIndex 例如。 File.separator