You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为assertj-assertions-generator-maven-plugin添加自定义入口类名变量

使用assertj-assertions-generator-maven-plugin添加自定义变量的方案

当然可以通过自定义变量动态生成入口类名,完美解决你多模块下类名冲突的问题,具体操作步骤如下:

  • 第一步:在Maven POM中定义自定义属性
    在模块的POM文件里添加一个自定义属性,比如AssertionsEntryPointClassName,值可以设置为模块专属标识(比如模块名):

    <properties>
      <AssertionsEntryPointClassName>MyOrderModule</AssertionsEntryPointClassName>
    </properties>
    
  • 第二步:配置插件并指定自定义模板
    配置assertj-assertions-generator-maven-plugin时,通过entryPointTemplate参数指定你的自定义模板文件路径:

    <build>
      <plugins>
        <plugin>
          <groupId>org.assertj</groupId>
          <artifactId>assertj-assertions-generator-maven-plugin</artifactId>
          <version>2.2.0</version> <!-- 建议使用最新稳定版本 -->
          <executions>
            <execution>
              <goals>
                <goal>generate-assertions</goal>
              </goals>
            </execution>
          </executions>
          <configuration>
            <entryPointTemplate>${project.basedir}/src/test/resources/assertj-entry-point-template.java</entryPointTemplate>
          </configuration>
        </plugin>
      </plugins>
    </build>
    
  • 第三步:编写自定义模板文件
    在指定路径创建模板文件assertj-entry-point-template.java,内容如下(直接使用你定义的变量即可):

    package ${package};
    
    @javax.annotation.Generated(value="assertj-assertions-generator")
    public class ${AssertionsEntryPointClassName}Assertions {
    
    ${all_assertions_entry_points}
    
      protected ${AssertionsEntryPointClassName}Assertions() {
        // empty
      }
    }
    

这样每个模块可以设置不同的AssertionsEntryPointClassName值,生成的入口类就会是类似MyOrderModuleAssertions、MyUserModuleAssertions这样的专属名称,跨模块使用测试Jar时就不会出现类名混淆的问题了。插件会自动将POM中的属性值替换到模板对应的变量位置。

内容的提问来源于stack exchange,提问作者John B

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.19 08:35:30