public FileObject getFileObject(String path) { FileObject fileObject = fileMap.get(path); if (fileObject == null && !searchPathMap.isEmpty()) { for (String searchPath : searchPathMap.keySet()) { FileObject searchPathObject = searchPathMap.get(searchPath); if (searchPathObject == null) { throw new RuntimeException(String.format("[searchPath:%s],不是搜索的跟路径", searchPath)); } fileObject = searchPathObject.getFileObject(path); if (fileObject != null && fileObject.isExist() && fileObject != searchPathObject) { addFileObject(path, fileObject); break; } else { fileObject = null; } } } if (fileObject != null && excludeContextFileFinder.checkMatch(fileObject)) { return fileObject; } return null; }
for (String rootPath : fileResolver.getScanningPaths()) { FileObject root = VFS.resolveFile(rootPath); FileObject file = root.getFileObject(path); if (file != null) { sets.add(file); FileObject file = root.getFileObject(path); if (file != null) { sets.add(file); for (String rootPath : fileResolver.getScanningPaths()) { FileObject root = VFS.resolveFile(rootPath); FileObject file = root.getFileObject(path); if (file != null) { return file; FileObject file = root.getFileObject(path); if (file != null) { return file;
public void process(FileObject fileObject) { FileObject mfObject = fileObject.getFileObject("META-INF/MANIFEST.MF"); if (mfObject == null || !mfObject.isExist()) { return; } InputStream inputStream = null; try { inputStream = mfObject.getInputStream(); Manifest mf = new Manifest(inputStream); Attributes attributes = mf.getMainAttributes(); String isTinyProject = attributes.getValue("IsTinyProject"); if ("true".equals(isTinyProject)) { LOGGER.logMessage(LogLevel.INFO, "文件<{}>由于在MANIFEST.MF文件中声明了IsTinyProject: true而被扫描。", fileObject); addJarFile(classPaths, fileObject.getAbsolutePath()); } } catch (IOException e) { LOGGER.logMessage(LogLevel.WARN, "解析MANIFEST.MF发生异常:{}", mfObject.getAbsolutePath()); } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException e) { // do nothing } } } } });