[edit] Этот ответ для Play 1. * series!
Вы должны написать собственный модуль, затем ваши команды перейдут в файл commands.py
, ref : http://www.playframework.org/documentation/1.2.4/releasenotes-1.1#commands
Вы можете посмотреть на существующие модули, чтобы получить вдохновение, например: https://github.com/sim51/logisima-play-yml/blob/master/commands.py
В основном вы определяете нужные команды и запускаете их из «выполнить», метод, например:
COMMANDS = ['namespace:command']
def execute(**kargs):
command = kargs.get("command")
app = kargs.get("app")
args = kargs.get("args")
env = kargs.get("env")
if command == "namespace:command":
do_something()
, если вы хотите запустить что-то java - часто бывает! -:
def do_something():
java_cmd = app.java_cmd([], None, "play.modules.mymodule.MyClass", args)
try:
subprocess.call(java_cmd, env=os.environ)
except OSError:
print "Could not execute the java executable, please make sure the JAVA_HOME environment variable is set properly (the java executable should reside at JAVA_HOME/bin/java). "
sys.exit(-1)
print
Ps.
Создание настраиваемого модуля так же просто, как:
play new-module mymodule
Это праймер: http: //playframework.wordpress.com/2011/02/27/play-modules/, учитывая, что официальный Play! Документация модуля в этом отношении весьма ограничена
edit
Я думал, что добавлю немного информации:
, прежде чем вы сможете выполните свои команды, вы должны СОЗДАТЬ ваш модуль.
play build-module mymodule
модуль new-module / build-module ожидает, что модуль будет в корне папки проекта, но если у вас много таких возможностей, становится беспорядком. build-module module-srcs/mymodule
работает отлично.