void () { VirtualFile a = createFile("src/A.java", "class A{}"); VirtualFile b = createFile("res/res.properties", "aaa=bbb"); Module module = addModule("a", a.getParent(), null, b.getParent()); make(module); assertOutput(module, fs().file("A.class").file("res.properties")); final VirtualFile output = LocalFileSystem.getInstance().refreshAndFindFileByIoFile(getOutputDir(module)); assertNotNull(output); final VirtualFile classFile = output.findChild("A.class"); assertNotNull(classFile); final VirtualFile resOutputFile = output.findChild("res.properties"); assertNotNull(resOutputFile); final File classOutputIoFile = new File(classFile.getPath()); final long classStampBefore = classOutputIoFile.lastModified(); deleteFile(resOutputFile); changeFile(a, "class A { }"); // touch java source assertOutput(module, fs().file("A.class")); compile(true, b); assertOutput(module, fs().file("A.class").file("res.properties")); final long classStampAfter = classOutputIoFile.lastModified(); assertEquals("Java source should not be recompiled", classStampBefore, classStampAfter); }