我对两个相同的类放在不同的罐子中感到困惑,但是项目显示出不同的行为。如下所示:
jar:test1.jar类:cn.oom.test.HelloTests
public class HelloTests {
/**
* greet
*
* @return
*/
public static String greet(String greet) {
System.out.println("test1 " + greet);
return "test1" + greet;
}
}
jar:test2.jar类:cn.oom.test.HelloTests
public class HelloTests {
/**
* greet
*
* @return
*/
public static String greet(String greet) {
System.out.println("test2 " + greet);
return "test2" + greet;
}
}
在我的项目(一个springboot项目)中:atest,我添加了
之类的依赖项
<dependency>
<groupId>cn.oom.test1</groupId>
<artifactId>test1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.oom.test2</groupId>
<artifactId>test2</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
然后像
一样测试类@Component
public class ATests implements CommandLineRunner {
@Override
public void run(String... args) throws Exception {
HelloTests.greet("hello");
//
}
}
它显示:
test1你好
当像
这样的依赖项导入时<dependency>
<groupId>cn.oom.test2</groupId>
<artifactId>test2</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
<dependency>
<groupId>cn.oom.test1</groupId>
<artifactId>test1</artifactId>
<version>1.0-SNAPSHOT</version>
</dependency>
相同的代码显示:
test2你好
我感到困惑的是什么:当我将项目打包为jar文件时,请使用java -jar atest.jar
项目始终显示
test2你好