Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven在运行时的一开始就提供钩子吗_Java_Maven - Fatal编程技术网

Java Maven在运行时的一开始就提供钩子吗

Java Maven在运行时的一开始就提供钩子吗,java,maven,Java,Maven,假设我们正在运行mvn测试 我想知道是否有一种方法可以配置Maven在执行测试之前运行一些文件。在我的例子中,我想配置一个库,但不想为我的应用程序/测试中的每个入口点配置这个库。我只是想为调用运行时的每个mvn生命周期挂钩配置lib 大概是这样的: @MavenRuntimeLifecycle public class Whatever { public void runtimeBegin(){ // right when the java process starts

假设我们正在运行
mvn测试

我想知道是否有一种方法可以配置Maven在执行测试之前运行一些文件。在我的例子中,我想配置一个库,但不想为我的应用程序/测试中的每个入口点配置这个库。我只是想为调用运行时的每个mvn生命周期挂钩配置lib

大概是这样的:

@MavenRuntimeLifecycle   
public class Whatever {

  public void runtimeBegin(){
      // right when the java process starts up
      Mylib.configure("foo");
  }

  public void runtimeEnd(){
     // right before the process shuts down
  }

}
我假设这是一个特定于Maven的东西,而不是说它必须与我的服务器或测试在同一个Java进程中

请注意,使用Node.js,我只需这样做:

export class MyLib {

  isConfigLoaded = false;

  static loadConfig(){
    // ...
  }

  static void run(){
    if(!this.isConfigLoaded){
      MyLib.loadConfig(require('../some/path/to/.mylib.config.js'));
      this.isConfigLoaded = true;
    }
    this.doTheThing();
  }

}

我可以对Java或Maven项目做同样的事情,只需在resources目录中存储一个.Java文件。这需要更多的手动操作,但也可以完成。

您能否更详细地说明“配置库”想要实现的目标?@JFMeier一个简单的例子是,库在运行之前需要额外的信息(如加载对等依赖项)。在它能够做任何事情之前,它需要与对等依赖项相链接。这里的想法是,一个用于设置对等依赖关系的配置文件就足以满足应用程序及其测试的任何入口点。你是什么意思?你能更详细地说你想要实现什么,“配置库”@JFMeier一个简单的例子是需要额外信息的库(比如加载对等依赖关系)在它运行之前。在它能够做任何事情之前,它需要与对等依赖项相链接。这里的想法是,一个用于设置对等依赖关系的配置文件就足以满足应用程序及其测试的任何入口点?