| | |
| | | StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
|
| | | Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromFiles(files);
|
| | |
|
| | | 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();
|
| | | |
| | | final Iterable<String> options = buildOptions(targetDir);
|
| | | |
| | | compiler.getTask(null, null, diagnostics, options, null, compilationUnits).call();
|
| | | fileManager.close();
|
| | | collectResults(diagnostics, compilerIssues, relPath);
|
| | |
| | |
|
| | | }
|
| | |
|
| | | public class JarFileFilter implements FileFilter {
|
| | |
|
| | | @Override
|
| | | public boolean accept(File pathname) {
|
| | | boolean doAccept = false;
|
| | | if(pathname.getName().endsWith(".jar")) {
|
| | | doAccept = true;
|
| | | }
|
| | | return doAccept;
|
| | | }
|
| | | |
| | | }
|
| | | |
| | | /**
|
| | | *
|
| | | * @param relPath
|
| | |
| | | DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector();
|
| | | StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
|
| | | Iterable<? extends JavaFileObject> compilationUnits1 = fileManager.getJavaFileObjectsFromFiles(files);
|
| | | if( mode.equals("1")) {
|
| | | final Iterable<String> options = Arrays.asList(new String[]{"-Xlint",
|
| | | /*"-cp", project.getClassPath(),*/
|
| | | "-d", targetDir.getAbsolutePath()
|
| | | });
|
| | | compiler.getTask(null, fileManager, diagnostics, options, null, compilationUnits1).call();
|
| | | } else {
|
| | | compiler.getTask(null, null, diagnostics, null, null, compilationUnits1).call();
|
| | | } |
| | | final Iterable<String> options = buildOptions(targetDir);
|
| | | compiler.getTask(null, fileManager, diagnostics, options, null, compilationUnits1).call();
|
| | | fileManager.close();
|
| | | List<CompilerIssue> compilerIssues = new ArrayList();
|
| | | collectResults(diagnostics, compilerIssues, relPath);
|
| | | return compilerIssues;
|
| | | }
|
| | | |
| | |
|
| | | private final Iterable<String> buildOptions(File targetDir) {
|
| | | String cbase = getCatalinaBase();
|
| | | File lib = new File(cbase, "lib");
|
| | | String cp = "";
|
| | | cp = buildCPFromDir(cp, lib);
|
| | | logger.fine(lib.getAbsolutePath());
|
| | | logger.fine(cp);
|
| | | /*
|
| | | wegen dieser Funktion MUSS alles in 'src' liegen
|
| | | */
|
| | | File srcDir = targetDir;
|
| | | while(!srcDir.getName().endsWith("src")) { |
| | | srcDir = srcDir.getParentFile();
|
| | | }
|
| | | File appDir = srcDir.getParentFile();
|
| | | File appLibDir = new File(appDir, "web/WEB-INF/lib");
|
| | | cp = buildCPFromDir(cp, appLibDir);
|
| | | logger.fine(cp);
|
| | | /*
|
| | | ausgehend von src eins hoeher, dann nach build
|
| | | */
|
| | | File buildDir = new File(appDir, "build");
|
| | | final Iterable<String> options = Arrays.asList(new String[]{"-Xlint",
|
| | | "-cp", cp,
|
| | | "-d", buildDir.getAbsolutePath()
|
| | | }); |
| | | try {
|
| | | FileUtils.deleteDirectory(buildDir);
|
| | | buildDir.mkdir();
|
| | | } catch (IOException ex) {
|
| | | logger.log(Level.SEVERE, ex.getLocalizedMessage(), ex);
|
| | | }
|
| | | return options;
|
| | | }
|
| | | /*
|
| | | -classpath $JLIB/jettison-1.3.3.jar:$JLIB/xstream-1.4.7.jar
|
| | | */
|
| | | private String buildCPFromDir(String cp, File dir) {
|
| | | StringBuffer buf = new StringBuffer(cp);
|
| | | File[] files = dir.listFiles(new JarFileFilter());
|
| | | for(int i = 0; i < files.length; i++) {
|
| | | if(buf.length() > 0) {
|
| | | buf.append(File.pathSeparatorChar);
|
| | | }
|
| | | //buf.append("\"");
|
| | | buf.append(files[i].getAbsolutePath());
|
| | | //buf.append("\"");
|
| | | }
|
| | | |
| | | return buf.toString();
|
| | | }
|
| | | }
|
| | |
|
| | |
|
| | |
|
| | | /*
|
| | |
|
| | | Beispeil fuer einen dynamischen Compiler-Aufruf
|