我正在实现启动和停止内存数据库服务器的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