我应该如何使用ArchUnit来确保项目中的所有类都以同一个包名开头?

编程语言 2026-07-11

我有一个Gradle项目,依赖各不相同。

现在我想确保项目中所有Java源文件中的类都以相同的包前缀开头。

如何用ArchUnit来实现?

解决方案

这对Gradle有效:

@Test
public void sourceClassesShouldResideInMyPackage() {
    var sourceClassesPath = Paths.get(System.getProperty("user.dir"), "build/classes/java/main");
    var sourceClasses = new ClassFileImporter().importPaths(sourceClassesPath);
    var rule = classes().should().resideInAPackage("my.package.."); // The .. at the end are important.
    rule.check(sourceClasses);
}
站内所有文章版权归属LeftHeroAI导航站,无授权禁止任何主体转载、抄袭、复制内容,亦不得私自架设镜像站点。一经侵权,本站将通过法律途径追责。

相关文章