我有一个典型的maven项目,目录结构是:
src/main/java/SrcClass.java
public class SrcClass {
public int srcMethod() {return 0;}
}
src/test/java/TestClass.java
@RunWith(JunitParamsRunner.class)
public class TestClass
@Test
public void testThis() {
SrcClass srcClass = new SrcClass();
int result = srcClass.srcMethod();
assertEquals(result, 0);
}
当我像往常一样运行我的测试用例时使用:
mvn clean test -Dtest=TestClass#testMethod
它能够成功运行。我想知道它是如何工作的。我的意思是测试类和src类在不同的目录中,并不属于同一个jar。我需要知道这一点,因为我很难调试问题,需要更好地理解Maven和Spring的工作。
上面命令中的另一个问题是,是否同时清理源类和测试类的应用?
由于
答案 0 :(得分:1)
访问类的方法是通过JAVA CLASSPATH。 Maven生成需要添加到系统CLASSPATH的文件夹,然后将它们注入到环境中。
将类文件所在的文件夹添加到CLASSPATH后,Java会负责查找类。
mvn clean
适用于Maven在构建期间生成的所有文件夹。您可以在这里找到更多信息。
https://maven.apache.org/plugins/maven-clean-plugin/usage.html