Подтвердить что ты не робот

Можно ли использовать косые черты вместо File.separator в моих файлах сборки (Gradle)?

Я не вижу никаких очевидных проблем, но мне интересно, использовать ли / вместо File.separator, когда я пишу свои файлы сборки. Использование File.separator очень затрудняет чтение некоторых путей. Пример:

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

против

dependsDir = "${buildDir}/depends"
4b9b3361

Ответ 1

Косая черта (/) является законным разделителем путей в Windows, а также Unix (включая Linux и Mac OSX). Поэтому, если вам не нужна сборка для работы в других операционных системах, это не должно быть проблемой.

Ответ 2

Gradle по большей части просто полагается на java.io.File для выполнения всех связанных с контуром операций, которые в свою очередь изящно обрабатывают / как для Windows, так и для Linux. Поэтому использование / в Gradle API вряд ли вызовет какие-либо проблемы.

Я использую / в довольно большом проекте, который работает как на Windows, так и на Linux, и до сих пор у меня не было ни одной проблемы. Надеюсь, это поможет.

Ответ 3

в классе файлов

 public static final String separator = "" + separatorChar;

где separatorChar - зависимый от системы символ-разделитель по умолчанию. Это поле инициализируется, чтобы содержать первый символ значения системы свойство file.separator. В системах UNIX значение этого поле '/'; в системах Microsoft Windows это '\'.
и разделительChar создан из

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

Для вас на основе вашей операционной системы разделитель будет изменен при использовании File.separator.
используя / в вашем коде, он не будет поддерживать другую ОС.