我正在构建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"
'';
}