Utility for Node's java module to load mvn dependencies.
npm install @cubejs-backend/node-java-maven

node-java-maven
---------------
* Install node-java-maven
npm install node-java-maven
* Add a java key to your package.json
{
"java": {
"dependencies": [
{
"groupId": "org.apache.lucene",
"artifactId": "lucene-core",
"version": "4.9.0"
}
]
}
}
* Run node-java-maven
./node_modules/.bin/node-java-maven
* Use node-java with node-java-maven to set your classpath
var java = require('java');
var mvn = require('node-java-maven');
mvn(function(err, mvnResults) {
if (err) {
return console.error('could not resolve maven dependencies', err);
}
mvnResults.classpath.forEach(function(c) {
console.log('adding ' + c + ' to classpath');
java.classpath.push(c);
});
var Version = java.import('org.apache.lucene.util.Version');
});
* Exclusions dependencies with "exclusions" property
{
"java": {
"exclusions": [
{
"groupId": "javax.activation",
"artifactId": "activation"
},
{
"groupId": "javax.ejb",
"artifactId": "ejb"
},
{
"groupId": "javax.faces",
"artifactId": "jsf-api"
},
{
"groupId": "javax.jms",
"artifactId": "jms"
},
{
"groupId": "javax.mail",
"artifactId": "mail"
}
],
"dependencies": [
{
"groupId": "org.springframework",
"artifactId": "spring",
"version": "2.0.6"
}
]
}
}
* Add another maven repo
{
"java": {
"repositories": [
{
"id": "maven",
"url": "http://example/repository/maven-public/",
"credentials": {
"username": "user",
"password": "pass"
}
}
],
"dependencies": [
{
"groupId": "org.apache.lucene",
"artifactId": "lucene-core",
"version": "4.9.0"
}
]
}
}