Пошаговое выполнение этапов сборки Java - PullRequest
0 голосов
/ 18 июня 2019

Я создаю деривацию для системы обработки языка 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"
          '';
  }
...