Плагин Maven Exec не использует системный путь в Windows? - PullRequest
9 голосов
/ 29 октября 2010

Как это может не работать в Windows?

   <plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>exec-maven-plugin</artifactId>
    <version>1.2</version>
    <executions>
     <execution>
      <id>deploy-dev-ssh</id>
      <phase>install</phase>
      <goals>
       <goal>exec</goal>
      </goals>
     </execution>
    </executions>
    <configuration>
     <executable>echo</executable>
     <arguments>
      <argument>hello</argument>
     </arguments>
    </configuration>
   </plugin>

Я получаю это при запуске:

[ERROR] Failed to execute goal org.codehaus.mojo:exec-maven-plugin:1.2:exec (do-this) on project <my_project_name>: Command execution failed. Cannot run program "echo" (in directory "<my_local_path>"): CreateProcess error=2, The system cannot find the file specified -> [Help 1]

Как эхо не может быть в PATH?

Ответы [ 2 ]

9 голосов
/ 29 октября 2010

Проблема в том, что echo - это команда программы cmd.exe, а не отдельный процесс \ приложение, как в Unix. Чтобы сделать то, что вы пытаетесь сделать здесь, вам нужно вызвать cmd как исполняемый файл с «echo», «/ C» (чтобы сообщить cmd, что вы передаете ему команду - см. «Cmd /?» В вашей Windows командная строка.) и 'привет' в качестве аргументов.

Вроде так:

            <configuration>
                <executable>cmd</executable>
                <arguments>
                    <argument>/C</argument>
                    <argument>echo</argument>
                    <argument>hello</argument>
                </arguments>
            </configuration>
3 голосов
/ 15 ноября 2012

Вы также можете создать файл echo.bat в своем рабочем каталоге и установить для него значение:

@echo %*

Этот метод особенно удобен для одновременной поддержки как сборки Windows, так и Linuxсред.Возможно, «эхо» не очень хороший пример, но вы можете столкнуться с ситуацией, когда одна и та же команда существует как в Windows, так и в Linux.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...