void () { String file = createFile("src1/A.java", "class A{}"); JpsModule m1 = addModule("m1", PathUtil.getParentPath(file)); JpsModule m2 = addModule("m2", PathUtil.getParentPath(createFile("src2/B.java", "class B{}"))); JpsArtifact a = addArtifact(root().module(m1).module(m2)); buildAll(); assertOutput(a, fs().file("A.class").file("B.class")); delete(file); createFile("src2/A.java", "class A{}"); buildAll(); assertOutput(a, fs().file("A.class").file("B.class")); assertDeletedAndCopied(new String[] {"out/artifacts/a/A.class", "out/production/m1/A.class"}, "out/production/m2/A.class"); buildAllAndAssertUpToDate(); }