Ответ 1
Вот как я решил свою проблему
mkdir /tmp/myproject-target
cd ~/workspace/myproject
rm -rf target
ln -s /tmp/myproject-target target
Я получаю сообщение об ошибке: у меня есть файл, который слишком длинный в sbt.
[info] Compiling 29 Scala sources to /home/chris/dev/suredbits-core/target/scala-2.11/classes...
[error] File name too long
[error] one error found
[error] (compile:compile) Compilation failed
[error] Total time: 7 s, completed Feb 17, 2015 8:10:25 AM
Как узнать, какой файл слишком длинный, чтобы я мог сократить имя файла? Я добавил флаг компилятора -Xmax-classfile-name
и установил его на 254.
Вот как я решил свою проблему
mkdir /tmp/myproject-target
cd ~/workspace/myproject
rm -rf target
ln -s /tmp/myproject-target target
Если ваша /home
является зашифрованной файловой системой (например, LUKS), вы можете столкнуться с этой проблемой.
Настройка max-classfile-name
до 254 по умолчанию (или может быть 255) - поэтому вы не уменьшаете ее. Вероятно, вам стоит подумать над чем-то ближе к максимальной длине 70 - 100. Вы можете установить его для всех своих проектов, создав ~/.sbt/0.13/local.sbt
с помощью переопределения scalac:
scalacOptions ++= Seq("-Xmax-classfile-name","78")
Я столкнулся с этой проблемой в IntelliJ Ultimate 2016.1.2 (что напоминает Intellij 14). Я решил это, установив:
-Xmax-classfile-name 78
В Файл > Настройки... > Сборка, выполнение, развертывание > Компилятоp > Scala Компилятоp > Дополнительные параметры компилятора.
ПРИМЕЧАНИЕ. имеется пробел между именем опции и ее значением ( "78" ), а не знаком равенства.
Попробуйте использовать оболочку script следующим образом:
#!/bin/sh
for file in *; do {
echo -m "$file" | wc -m;
echo "$file"
}
done
Запуск этого в вашем каталоге src/main/ scala должен показать вам, какие файлы имеют имя с более чем 254 символами. Надеюсь, это ответит на ваш вопрос.
Я хочу предложить другой подход:
Можно создать контейнер со сложным паролем и монтировать при входе в систему
veracrypt -t --pim = 0 --protect-hidden = no -k "" -p $PASSWORD $ENCRYPTED_CONTAINER $MOUNT_DIR