Я создаю деривацию для системы обработки языка standford coreNLP . Как я понял из приведенного ниже вывода, система правильно собирается и завершает работу (сохраняя закомментированные строки installPhase).
Теперь я хочу скопировать выходные данные сборки и использовать makeWrapper
, чтобы сделать исполняемый файл. Однако команда mv
не находит каталог CoreNLP
, который, как сообщают выходные данные сборки, находится там.
Чтобы помочь мне не только с этой конкретной проблемой, но и с проблемами дальнейшего развития, как я могу пройти процесс сборки с nix-shell
? Я пытался позвонить configurePhase
, buildPhase
и т. Д., Но они искали стандартные Make
утилиты. Когда я вызываю nix-build, я почти уверен, что он использует «ant». Я хочу пройтись, чтобы увидеть, что делает сборка на разных этапах - создавать продукты для сборки и т.п., тестировать makeWrapper
и т. Д.
{ stdenv, fetchgit, ant, jdk
, makeWrapper, jre, coreNLP-models } :
stdenv.mkDerivation {
name = "coreNLP";
system = builtins.currentSystem;
src = fetchgit {
url = https://github.com/stanfordnlp/CoreNLP.git ;
rev = "v3.9.2";
sha256 = "05hyxl11cd33haxs5gm8272975jvkwr7dyy1ndxnbzz1y4lhqfq3";
} ;
shellHook = ''
echo "Hello nlp shell"
'';
buildPhase = "ant";
buildInputs = [jdk ant makeWrapper jre coreNLP-models];
installPhase =
''
mkdir -p $out/bin
# mv $build/CoreNLP $out/share/
# makeWrapper ${jre}/bin/java $out/bin/coreNLP --add-flags "edu.stanford.nlp.pipeline.StanfordCoreNLPServer -port 9000 -timeout 150000 -annotators"
'';
}