xen*_*ide 5 java spring dependencies maven intellij-14
我正在尝试升级我们的 Spring 版本并使用 Spring IO Platform BOM 来执行此操作,但是我们的一些类丢失了(移至其他工件中)或者不再是我正在引入的某些东西的依赖项。试图找出它们最初属于哪个包(一个例子是 CSVStrategy )。其中一些依赖项例如WhitespaceTokenizer有十多个可以提供它的工件名称,为了找到正确的升级路径,我需要弄清楚它当前来自哪里。
一种可能的方法是获取资源(类)位置。如果该类来自 jar 文件,您至少会获得 jar 名称。由此您应该能够识别 Maven 工件。
someClass.getProtectionDomain().getCodeSource().getLocation().toURI();
Run Code Online (Sandbox Code Playgroud)
或者使用 ResourceLoader 和记录器,您可以打印类路径/servlet 路径上所有类的列表。
@Autowired
ResourceLoader resourceLoader;
public void printResourceLocations() {
PathMatchingResourcePatternResolver resolver = new PathMatchingResourcePatternResolver(resourceLoader);
Resource[] resources = resolver.getResources("classpath*:com/**/*.class"));
for (Resource resource : resources) {
log.info(resource.getURI());
// Not sure if that works, probably getFile() is ok?
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2905 次 |
| 最近记录: |