我正在开发一个多模块Maven项目,如下所示:
Parent-project (pom)
+- Module1 (executable-jar)
+- Module2 (executable-jar)
+- Module3 (jar)
+- ...
+- Distribution (pom)
分发模块列出了对Module1,Module2和Module3的依赖关系。我希望Distribution模块测试项目并将其打包。我正在使用此模块进行测试,因为分发已包含所有必需的配置文件。如果我从命令行手动启动测试,它将看起来像这样:
$ # Pre-integration-test:
$ java -Djava.rmi.server.codebase=file:module3.jar -jar module1.jar
$ java -Djava.rmi.codebase=file:module3.jar -jar module2.jar
我已经查看exec-maven-plugin将这些调用绑定到预集成测试阶段,但插件只包含类路径上的JAR而不是包含JAR本身的目录。我想我会从插件中获益最多,这个插件可以轻松执行由项目依赖项生成的jar。这样,我可以在Distribution POM中做这样的事情:
...
<plugin>
<artifactId>some-magic-plugin</artifactId>
<executions><execution>
<phase>pre-integration-test</phase>
<goals><goal>exec-dependency</goal></goals>
<configuration>
<artifactId>module1</artifactId>
<vmArguments>...</vmArguments>
<arguments>...</arguments>
</configuration>
</execution></executions>
</plugin>
是否已有插件?理想情况下,它将能够:
我已经看过依赖:复制目标尝试将所有JAR首先复制到一个公共路径,但似乎没有必要,因为jar已经构建为项目的一部分。 (我也不确定哪个目录会成为最好的复制目的地。)