我们的开发团队在编写代码时遵循一系列规则。我正在考虑在编译时明确执行这些规则的想法。 IDE中确实有一些设置,这些设置显示了许多规则的提示,但不是全部。而且仍然存在一些错误。除了格式化(我们可以使用Checkstyle进行检查并使用Maven进行构建失败)之外,是否可以在编译时强制执行此类规则? :
任何见解都将受到赞赏!
答案 0 :(得分:2)
签出ArchUnit。伟大的工具,用于对您的体系结构进行单元测试。
您只需为要执行的所有内容编写测试。例如。实体测试必须驻留在entities
程序包中。
public class EntityTest {
private JavaClasses classes;
@Before
public void setUp() {
classes = new ClassFileImporter().importPackages("org.my.company");
}
@Test
public void classesAnnotatedAsEntitiesShouldResideInEntitiesPackage() {
ArchRuleDefinition.classes()
.that().areAnnotatedWith(Entity.class)
.should().resideInAnyPackage("..entities")
.check(this.classes);
}
}