我正在實現啓動和停止內存數據庫服務器的Maven插件。我有兩個Mojos ServerStart
和ServerStop
。在ServerStop
中,我創建了一個數據庫服務器實例並開始呼叫server.start()
。在ServerStop
Mojo我想獲得一個服務器的實例來調用server.stop()
。我可以以某種方式創建Server實例,然後將它注入到我的Mojos中?如何在多個Maven插件Mojos中共享實例相同的實例?
下面是示例代碼:
@MojoGoal("start")
public class StartServerMojo extends AbstractMojo {
//How to instantiate and inject the server here?
private Server server;
public void execute() throws MojoExecutionException {
server.start();
}
}
@MojoGoal("stop")
public class StopServerMojo extends AbstractMojo {
//How to instantiate and inject the server here?
private Server server;
public void execute() throws MojoExecutionException {
server.stop();
}
}
2個問題。 1)你想如何將它注入你的mojos?例如,你有配置的地方嗎? 2)我之前沒有看到過這樣的註解('@MojoGoal(「stop」)')。你能告訴我你在哪裏找到它嗎? :) – 2012-02-29 11:46:16
安德魯,我沒有配置它。這是我的問題,如何實例化並注入。註釋來自JFrog的Maven Anno Mojo擴展(http://wiki.jfrog.org/confluence/display/OSS/Maven+Anno+Mojo)。它允許使用Java註釋代替XDoclet註釋。 – 2012-02-29 11:55:14
好的,我明白了。你需要做什麼來實例化服務器?我的意思是編程。 – 2012-02-29 12:56:22