[править] Этот ответ предназначен для серии Play 1. *!
Вам следует написать собственный модуль, затем ваши команды перейдут в commands.py
file, ref: http://www.playframework.org/documentation/1.2.4/releasenotes-1.1#commands
Вы можете взглянуть на существующие модули, чтобы получить вдохновение, например: https://github.com/sim51/logisima-play-yml/blob/master/commands.py
По сути, вы определяете нужные команды и запускаете их из "execute"метод, например:
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/, учитываяэтот официальный играть!документация к модулю весьма ограничена в этом отношении
edit
Я подумал, что добавлю небольшой кусочек информации:
, прежде чемв состоянии выполнять ваши команды, вы должны построить свой модуль.Он не запускается как остальная часть игры с динамической компиляцией.
play build-module mymodule
new-module / build-module ожидают, что модуль находится в корне папки проекта, но если у вас их много, это становитсябардак.build-module module-srcs/mymodule
отлично работает.