All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.github.podal.codejavadoc.mojo.CodeJavaDocMvn Maven / Gradle / Ivy

package com.github.podal.codejavadoc.mojo;

import java.io.File;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.project.MavenProject;

import com.github.podal.codejavadoc.CodeJavaDoc;
import com.github.podal.codejavadoc.CodeJavaDoc.Log;
import com.github.podal.codejavadoc.util.FileUtil.Encoding;

/**
 * @goal codejavadoc
 */
public class CodeJavaDocMvn extends AbstractMojo {
	@SuppressWarnings("unchecked")
	public void execute() throws MojoExecutionException {
		try {
			List list = new ArrayList();
			MavenProject project = getProject();
			list.addAll(project.getCompileSourceRoots());
			list.addAll(project.getTestCompileSourceRoots());
			List fileList = new ArrayList();
			for (String fileName : list) {
				File file = new File(fileName);
				if (file.exists() && file.isDirectory()) {
					fileList.add(file);
				}
			}
			if (!fileList.isEmpty()) {
				File tmpFile = new File(project.getBasedir() + "/target/codeToJavaDoc");
				if (!tmpFile.exists()) {
					if (!tmpFile.mkdirs()) {
						throw new MojoExecutionException("Can't create dir " + tmpFile);
					}
				}
				final String encoding = (String) project.getProperties().get("project.build.sourceEncoding");
				if (encoding == null) {
					getLog().error("Must set project.build.sourceEncoding");
					throw new MojoExecutionException("Must set project.build.sourceEncoding");
				}
				CodeJavaDoc.doCodeToJavaDoc(fileList.toArray(new File[0]), new Encoding() {

					@Override
					public String getEncoding(File file) {
						return encoding;
					}
				}, tmpFile, new Log() {
					@Override
					public void log(String line) {
						getLog().debug(line);
					}
				});
			}
		} catch (IOException e) {
			throw new MojoExecutionException("Error execute", e);
		}
	}

	public MavenProject getProject() {
		return (MavenProject) getPluginContext().get("project");
	}
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy