如何使用单个POM文件创建两个Maven项目
复用项目X POM运行JMH项目的实现方案
你可以直接在现有项目X的POM文件中补充JMH相关配置,无需为JMH项目Y单独创建POM文件,实操步骤如下:
1. 补充JMH依赖
在项目X POM的<dependencies>节点下添加JMH核心依赖,设置scope为test避免依赖被打入生产产物:
<dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-core</artifactId> <version>1.37</version> <scope>test</scope> </dependency> <dependency> <groupId>org.openjdk.jmh</groupId> <artifactId>jmh-generator-annprocess</artifactId> <version>1.37</version> <scope>test</scope> </dependency>
JMH版本可以根据你的需求调整,无需和项目其他依赖版本绑定
2. 配置JMH编译执行插件
在项目X POM的<build><plugins>节点下添加插件配置,指定JMH代码的存放路径,建议将项目Y的所有代码放在项目X的src/test/jmh目录下,和普通单元测试做隔离:
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <version>3.11.0</version> <executions> <execution> <id>compile-jmh</id> <phase>test-compile</phase> <goals> <goal>testCompile</goal> </goals> <configuration> <compileSourceRoots> <compileSourceRoot>${project.basedir}/src/test/jmh</compileSourceRoot> </compileSourceRoots> </configuration> </execution> </executions> </plugin> <plugin> <groupId>pl.project13.maven</groupId> <artifactId>jmh-maven-plugin</artifactId> <version>0.3.9</version> <configuration> <sourceDirectory>${project.basedir}/src/test/jmh</sourceDirectory> <includes> <include>**/*Benchmark.java</include> </includes> </configuration> </plugin>
3. 运行JMH测试
直接在项目X根目录执行以下命令即可运行项目Y的基准测试:mvn clean test-compile jmh:run
如果需要单独导出JMH的可执行jar包,执行mvn jmh:jar即可生成独立的基准测试包,不需要额外维护独立POM。
内容的提问来源于stack exchange,提问作者pradeep3009
相关产品推荐
相关产品推荐

