Java 如何从包覆面提取存档中删除测试类

Java 如何从包覆面提取存档中删除测试类,java,shrinkwrap,Java,Shrinkwrap,如何从最终归档中筛选类 public static JavaArchive unitTestJar() { return ShrinkWrap.create( JavaArchive.class ) .addAsManifestResource( EmptyAsset.INSTANCE, "beans.xml" ) .addPackages( false, getCorePackages() ); } public static Stri

如何从最终归档中筛选类

public static JavaArchive unitTestJar() {
    return ShrinkWrap.create( JavaArchive.class )
            .addAsManifestResource( EmptyAsset.INSTANCE, "beans.xml" )
            .addPackages( false, getCorePackages() );
}

public static String[] getCorePackages( String... args ) {
    List<String> strings = Arrays.asList(
            "com.lm.util",
            "com.lm.infrastructure"
    );

    strings.addAll( Arrays.asList( args ) );
    return (String[]) strings.toArray();
}
publicstaticjavaarchiveunittestjar(){
返回ShrinkWrap.create(JavaArchive.class)
.addAsManifestResource(EmptyAsset.INSTANCE,“beans.xml”)
.addPackages(false,getCorePackages());
}
公共静态字符串[]getCorePackages(字符串…参数){
List strings=Arrays.asList(
“com.lm.util”,
“com.lm.基础设施”
);
strings.addAll(Arrays.asList(args));
返回(String[])strings.toArray();
}
我知道有一个,但我似乎找不到任何使用它的例子。最终,我想我应该删除所有
*Test*
。这比一次添加一个类更容易。

尝试以下方法:

ShrinkWrap.create(WebArchive.class)  
          .addPackages(true, Filters.exclude(".*Test.class"), getCorePackages());

@Sam,问题是关于API的使用。在这种情况下,我看不到比一个可测试的示例更好的帮助。哦,很抱歉-我在StackOverflow Review部分中查看了答案/问题。不幸的是,它没有显示答案的上下文。这个regexp,
*Test.*
,还将排除任何名称包含单词“Test”的类,它不一定是JUnit测试文件。使用
*Test.class
仅排除名称以
Test
结尾的文件。