в build.gradle.kts У меня есть
rootProject.name = "adaptors"
// I have also used File("."), same results
file(".").walkTopDown().filter { it.extension == "sln" }.map { it.path.split('/','\\')[1] }.forEach(::include)
Если я запустил это в kotlinc
, он работает, как ожидалось:
>>> File(".").walkTopDown().filter { it.extension == "sln" }.map { it.path.split('/','\\')[1] }.take(5).forEach{println(it)}
adaptor-cwi_ca_los_angeles
adaptor-socwi_vt
adaptor-qc_oh_butler
adaptor-pwi_tx_mc_tor
adaptor-fdi_globex
Однако, когда я прошу gradle показать мне это проекты:
cbongiorno at 5cg6203867 in ~/dev/adaptors on INIT-471 [!?]
$ gradle projects
> Task :projects
------------------------------------------------------------
Root project
------------------------------------------------------------
Root project 'adaptors'
\--- Project ':Users'
To see a list of the tasks of a project, run gradle <project-path>:tasks
For example, try running gradle :Users:tasks
Ладно, все не так. Но когда я спрашиваю у него свойства, которые он должен показать мне projectDir, это действительно правильно!
cbongiorno at 5cg6203867 in ~/dev/adaptors on INIT-471 [!?]
$ gradle properties
...
projectDir: /Users/cbongiorno/dev/adaptors
Вот bash код, подтверждающий мое понимание:
cbongiorno at 5cg6203867 in ~/dev/adaptors on INIT-471 [!?]
$ pwd
/Users/cbongiorno/dev/adaptors
cbongiorno at 5cg6203867 in ~/dev/adaptors on INIT-471 [!?]
$ ls *.kts
build.gradle.kts settings.gradle.kts
cbongiorno at 5cg6203867 in ~/dev/adaptors on INIT-471 [!?]
$ ls Users
ls: Users: No such file or directory
Теперь , еще более шокирующим является то, что, если предположить, что это был неправильный родительский элемент, код обхода дерева все равно найдет все файлы решения и ПО-прежнему будет работать правильно. За исключением того, что это вызывает взрыв другого кода, потому что DUH! каталог даже не существует.
У меня точно такая же проблема с windows и ma c.
Итак, как именно Gradle приходит к этим выводам и как это сделать Починить?