From a450f233393a9e3297fea633373635d060a3c709 Mon Sep 17 00:00:00 2001 From: ulrich <undisclosed> Date: Mon, 20 Mar 2017 13:46:41 +0000 Subject: [PATCH] Compile all mitsamt Resultaten --- src/java/de/uhilger/filecms/api/CompileService.java | 28 +++++++++++++++++++++++----- 1 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/java/de/uhilger/filecms/api/CompileService.java b/src/java/de/uhilger/filecms/api/CompileService.java index ceb507e..b0ce388 100644 --- a/src/java/de/uhilger/filecms/api/CompileService.java +++ b/src/java/de/uhilger/filecms/api/CompileService.java @@ -34,6 +34,7 @@ import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; +import org.apache.commons.io.FileUtils; /** * @@ -53,16 +54,27 @@ DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector(); StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(files); - compiler.getTask(null, null, diagnostics, null, null, compilationUnits).call(); + + File buildDir = new File(targetDir.getParentFile(), "build"); + final Iterable<String> options = Arrays.asList(new String[]{"-Xlint", + /*"-cp", project.getClassPath(),*/ + /* + ausgehend von src eins hoeher, dann nach build + */ + "-d", buildDir.getAbsolutePath() + }); + FileUtils.deleteDirectory(buildDir); + buildDir.mkdir(); + compiler.getTask(null, null, diagnostics, options, null, compilationUnits).call(); fileManager.close(); - collectResults(diagnostics, compilerIssues); + collectResults(diagnostics, compilerIssues, relPath); } catch(Exception ex) { logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex); } return compilerIssues; } - private void collectResults(DiagnosticCollector<JavaFileObject> diagnostics, List<CompilerIssue> compilerIssues) { + private void collectResults(DiagnosticCollector<JavaFileObject> diagnostics, List<CompilerIssue> compilerIssues, String relPath) { List compileResults = diagnostics.getDiagnostics(); Iterator i = compileResults.iterator(); while (i.hasNext()) { @@ -74,7 +86,13 @@ issue.setKind(err.getKind().name()); issue.setLineNumber(err.getLineNumber()); issue.setMessage(err.getMessage(Locale.GERMANY)); - issue.setSoureName(err.getSource().getName()); + + String srcName = err.getSource().getName().replace("\\", "/"); + String cleanRelPath = relPath.replace(HOME_DIR_NAME + "/", "").replace(PUB_DIR_NAME + "/", ""); + int pos = srcName.indexOf(cleanRelPath); + String className = srcName.substring(pos + cleanRelPath.length()); + issue.setSourceName(className.replace("/", ".").substring(1)); + //issue.setSourceName(srcName + "\r\n" + relPath); compilerIssues.add(issue); } } @@ -142,7 +160,7 @@ } fileManager.close(); List<CompilerIssue> compilerIssues = new ArrayList(); - collectResults(diagnostics, compilerIssues); + collectResults(diagnostics, compilerIssues, relPath); return compilerIssues; } -- Gitblit v1.9.3