Contains an interface for sketch recognition and data types
Currently this needs to be included as a meven repo because the node installation script currently does not work.
You need the maven package plugin:
Here is an example use, you can use any path you want for the output
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.10</version>
<executions>
<execution>
<id>unpack libraries</id>
<phase>initialize</phase>
<goals>
<goal>unpack</goal>
</goals>
<configuration>
<artifactItems>
<artifactItem>
<groupId>com.github.dtracers</groupId>
<artifactId>SketchRecognitionFramework</artifactId>
<version>${sketchFrameworkVersion}</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>${basedir}/target/temp</outputDirectory>
<includes>website/**/*.js</includes>
</artifactItem>
<artifactItem>
<groupId>com.github.dtracers</groupId>
<artifactId>SketchRecognitionFramework</artifactId>
<version>${sketchFrameworkVersion}</version>
<type>jar</type>
<overWrite>true</overWrite>
<outputDirectory>${basedir}/src/main/resources/protobuf</outputDirectory>
<includes>*.proto</includes>
</artifactItem>
</artifactItems>
</configuration>
</execution>
</executions>
</plugin>
There is currently a bug where the js versions of the protofiles do not get built so you need to have this dependency in your package.json:
protobufjs
grunt-exec
and in your grunt file you need this:
exec: {
build_proto: {
cmd: function() {
var protoPath = 'src/main/resources/protobuf';
var inputFiles = [ protoPath + '/**/*.proto' ];
var protoFiles = grunt.file.expand(inputFiles);
var jsFiles = grunt.file.expandMapping(protoFiles, 'bower_components/generated_proto', { flatten: true, ext: '.js' });
var command = '';
console.log('protofiles: ', protoFiles);
for (var i = 0; i < protoFiles.length; i++) {
grunt.log.write('cimpiling protofile ' + protoFiles[i]);
grunt.log.write('');
var jsFile = jsFiles[i].dest;
command+= '"./node_modules/.bin/pbjs" ' + protoFiles[i] + ' --source=proto' +
' --dependency="protobufjs"' +
' --target=amd --path=' + protoPath + ' > ' + jsFile + ' & ';
}
console.log(command);
return command + 'echo "' + command + '"';
}
}
},
you made need to copy the files from where ever you unpackage them. Here is how you do it in maven:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>3.0.0</version>
<executions>
<execution>
<id>copy-resources</id>
<!-- here the phase you need -->
<phase>initialize</phase>
<goals>
<goal>copy-resources</goal>
</goals>
<configuration>
<outputDirectory>${basedir}/bower_components</outputDirectory>
<resources>
<resource>
<directory>${basedir}/target/temp/website</directory>
<filtering>true</filtering>
</resource>
</resources>
</configuration>
</execution>
</executions>
</plugin>
you must also specify dependencies in maven:
<dependencies>
<dependency>
<groupId>com.github.dtracers</groupId>
<artifactId>SketchRecognitionFramework</artifactId>
<version>${sketchFrameworkVersion}</version>
</dependency>
</dependencies>
if you are running this in node there may be path problems... up to you to fix them bc requirejs and node are finicky
if you are running this in the browser here are the dependencies you need:
stacktrace-js,
protobufjs,
bytebuffer,
long,
requirejs