You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by pk...@apache.org on 2015/06/17 18:13:13 UTC
svn commit: r1686064 - in /uima/ruta/trunk:
ruta-docbook/src/docbook/tools.ruta.howtos.xml
ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java
ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java
Author: pkluegl
Date: Wed Jun 17 16:13:13 2015
New Revision: 1686064
URL: http://svn.apache.org/r1686064
Log:
UIMA-4446
- added scriptFiles to mojo
- default input of built is output dir now (target/classes)
- added mention in documentation
Modified:
uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml
uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java
uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java
Modified: uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml?rev=1686064&r1=1686063&r2=1686064&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml (original)
+++ uima/ruta/trunk/ruta-docbook/src/docbook/tools.ruta.howtos.xml Wed Jun 17 16:13:13 2015
@@ -256,6 +256,24 @@ The|DT rabbit|NN made|VBD up|RP this|DT
<!-- This is a exemplary configuration, which explicitly specifies the
default configuration values if not mentioned otherwise. -->
+ <!--
+ The following parameter is optional and should only be specified
+ if the structure (e.g., classpath/resources) of the project requires it.
+
+ A FileSet specifying the UIMA Ruta script files that should be built.
+
+ If this parameter is not specified, then all UIMA Ruta script files
+ in the output directory (e.g., target/classes) of the project will be built.
+
+ default value: none
+ <scriptFiles>
+ <directory>${basedir}/some/folder</directory>
+ <includes>
+ <include>*.ruta</include>
+ </includes>
+ </scriptFiles>
+ -->
+
<!-- The directory where the generated type system descriptors will
be written stored. -->
<!-- default value: ${project.build.directory}/generated-sources/
Modified: uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java?rev=1686064&r1=1686063&r2=1686064&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java (original)
+++ uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/RutaGenerateDescriptorMojo.java Wed Jun 17 16:13:13 2015
@@ -40,6 +40,7 @@ import org.apache.commons.lang3.StringUt
import org.apache.commons.lang3.tuple.Pair;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.model.FileSet;
import org.apache.maven.plugin.AbstractMojo;
import org.apache.maven.plugin.MojoExecutionException;
import org.apache.maven.plugin.MojoFailureException;
@@ -91,6 +92,12 @@ public class RutaGenerateDescriptorMojo
private BuildContext buildContext;
/**
+ * The source files for the multi tree word list.
+ */
+ @Parameter(required = false)
+ private FileSet scriptFiles;
+
+ /**
* The directory where the generated type system descriptors will be written.
*/
@Parameter(defaultValue = DEFAULT_TARGET_DIR, required = true)
@@ -227,22 +234,39 @@ public class RutaGenerateDescriptorMojo
List<String> extensions = getExtensionsFromClasspath(classloader);
options.setLanguageExtensions(extensions);
- String[] files = FileUtils.getFilesFromExtension(project.getBasedir().getAbsolutePath(),
- new String[] { "ruta" });
-
+ String[] files = null;
+ if (scriptFiles != null) {
+ try {
+ files = Utils.getFilePathArray(scriptFiles, buildContext);
+ } catch (Exception e) {
+ getLog().warn("Error accessing script files.", e);
+ }
+ } else {
+ files = FileUtils.getFilesFromExtension(project.getBuild().getOutputDirectory(),
+ new String[] { "ruta" });
+ }
+
+ if (addRutaNature) {
+ addRutaNature();
+ addRutaBuildPath();
+ }
+
+ if (files == null) {
+ getLog().debug("UIMA Ruta Building: Skipped, since no script files were selected.");
+ return;
+ }
+
List<File> filesToBuild = new ArrayList<File>();
for (String each : files) {
File file = new File(each);
boolean descriptorMissing = isDescriptorMissing(file);
- if (descriptorMissing || buildContext.hasDelta(file)) {
+ boolean hasDelta = buildContext.hasDelta(file);
+ if (descriptorMissing || hasDelta) {
filesToBuild.add(file);
}
}
- if (addRutaNature) {
- addRutaNature();
- addRutaBuildPath();
- }
+
if (filesToBuild.isEmpty()) {
getLog().debug("UIMA Ruta Building: Skipped, since no changes were detected.");
@@ -277,7 +301,9 @@ public class RutaGenerateDescriptorMojo
getLog().warn("Failed to parse UIMA Ruta script: " + scriptName, re);
} catch (IOException ioe) {
toBuild.add(descriptorInformation);
- getLog().warn("Tried to build " + scriptName + ", but failed (dependency probably not yet build): " + ioe.getMessage());
+ getLog().warn(
+ "Tried to build " + scriptName
+ + ", but failed (dependency probably not yet build): " + ioe.getMessage());
count++;
} catch (SAXException saxe) {
getLog().warn("Failed to write descriptor: " + scriptName, saxe);
@@ -305,7 +331,7 @@ public class RutaGenerateDescriptorMojo
try {
aeFiles = FileUtils.getFiles(analysisEngineOutputDirectory, aeName, null);
} catch (IOException e) {
- return true;
+ return true;
}
if (aeFiles == null || aeFiles.size() == 0) {
return true;
@@ -318,7 +344,7 @@ public class RutaGenerateDescriptorMojo
} catch (IOException e) {
return true;
}
-
+
if (tsFiles == null || tsFiles.size() == 0) {
return true;
}
Modified: uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java
URL: http://svn.apache.org/viewvc/uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java?rev=1686064&r1=1686063&r2=1686064&view=diff
==============================================================================
--- uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java (original)
+++ uima/ruta/trunk/ruta-maven-plugin/src/main/java/org/apache/uima/ruta/maven/Utils.java Wed Jun 17 16:13:13 2015
@@ -49,6 +49,32 @@ public class Utils {
return result;
}
+ public static String[] getFilePathArray(FileSet fileSet, BuildContext buildContext) throws IOException {
+ List<File> files = new ArrayList<File>();
+
+ File directory = new File(fileSet.getDirectory());
+ if(!directory.exists()) {
+ return new String[0];
+ }
+ String includes = toString(fileSet.getIncludes());
+ String excludes = toString(fileSet.getExcludes());
+
+ for (Object each : FileUtils.getFiles(directory, includes, excludes)) {
+ if (each instanceof File) {
+ File file = (File) each;
+ files.add(file);
+ }
+ }
+ String[] result = new String[files.size()];
+ for (int i = 0; i < files.size(); i++) {
+ File each = files.get(i);
+ result[i] = each.getAbsolutePath();
+
+ }
+
+ return result;
+ }
+
public static List<File> getFilesIfModified(FileSet fileSet, BuildContext buildContext) throws IOException {
List<File> result = new ArrayList<File>();