Знаток может выполнить инструкции по командной строке?

Великолепные ответы:

  • это , которые объясняют историю, и
  • этот дает правильное цитирование, чтобы облегчить ваш перевод /understanding.

Моя заметка здесь взята из того, что однажды сказал Дональд Кнут (извините, не могу найти ссылку), что существует конструкция, в которой while-else неотличима от if-else, а именно (в Python):

x = 2
while x > 3:
    print("foo")
    break
else:
    print("boo")

имеет тот же поток (исключая различия низкого уровня) как:

x = 2
if x > 3:
    print("foo")
else:
    print("boo")

Дело в том, что if-else может рассматриваться как синтаксический сахар для while-else, который имеет неявный break в конец его if блока. Противоположный вывод, что цикл while является расширением до if, более распространен (это просто повторная / циклическая условная проверка), потому что if часто преподается раньше while. Однако это не так, потому что это будет означать, что блок else в while-else будет выполняться каждый раз , когда условие ложно.

Чтобы облегчить ваше понимание, подумайте об этом так:

Без break, return и т. Д. Цикл заканчивается только тогда, когда условие больше не выполняется, и в таком случае else Блок также будет выполнен один раз. В случае Python for вы должны рассмотреть циклы в стиле C for (с условиями) или перевести их в while.

Еще одно примечание:

Преждевременное break, return и т. Д. Внутри цикла делает невозможным для условия стать ложным, потому что выполнение выпрыгнуло из цикла, в то время как условие было истинным и он никогда не вернется, чтобы проверить это снова.

18
задан Rich Seller 30 July 2009 в 19:52
поделиться

3 ответа

На самом деле для этих случаев существует Exec Maven Plugin .

16
ответ дан 30 November 2019 в 08:16
поделиться

Не изначально.

Однако, используя плагин AntRun , вы можете указать задачу Ant (используя Exec ), которая запускает ОС команда во время сборки.

<project>
  ...
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <phase> <!-- a lifecycle phase --> </phase>
            <configuration>
              <tasks>

                <!--
                  Place any Ant task here. You can add anything
                  you can add between <target> and </target> in a
                  build.xml.
                -->

              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  ...
</project>
4
ответ дан 30 November 2019 в 08:16
поделиться

Подробнее см. exec-maven-plugin

8
ответ дан 30 November 2019 в 08:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: