I've added new maven dependency support that expands on this idea. Ideally, I'd like to access the code maven uses for this right from beanshell, but I don't have time to find it. Can someone help out with this?
Until we do, I've added a lisp file and a Java file to invoke the maven ant task code to build dependencies from: - artifact - group - version - scope (i.e. compile) However, it seems like when there's a POM that doesn't create a .jar file, it breaks because it expects this jar file. Again, this code you have seems to get around that. However, I don't like the length of time it takes to invoke (directly by forking a JVM for maven) and I don't like how it creates (2) temp files. In addition, the deletion of these files should be in an `unwind-protect' but aren't. I've added these files to the trunk: - java/src/jde/util/MavenUtils.java - lisp/jde-maven-util.el The function jde-maven-util-classpath takes the pom info (as a list of container eieio objects) and a boolean as to whether to fork or not using the program (in my case script) pomcp, which in turns just invokes MavenUtils from the command line. I don't know a good place to put this script in the repository (suggestions?) so I'll just add it below: --------snip LIB_LOCS="${HOME}/opt/lib /usr/local/lib" MVN_REPO=${HOME}/opt/var/maven/repo ANT_VERSION="1.7.0" JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6" uname | grep CYGWIN > /dev/null if [ $? = 0 ] ; then home=`cygpath -m ${HOME}` else home=${HOME} fi [ -f ${home}/.antrc ] && . ${home}/.antrc unset LIB for i in $LIB_LOCS ; do [ "$DEBUG" = "1" ] && echo "looking for ant version ${ANT_VERSION}" dir="$i/java/ant-${ANT_VERSION}" if [ -d $dir ] ; then [ "$DEBUG" = "1" ] && echo "found library in $dir" LIB=$i break fi done if [ -z "$LIB" ] ; then echo "can't find library directory in any of $LIB_LOCS" exit 1 fi CLASSPATH=${LIB}/java/ant-${ANT_VERSION}/lib/ant.jar:\ ${HOME}/opt/app/jdee/java/lib/jde.jar:\ ${MVN_REPO}/org/apache/maven/maven-ant-tasks/2.1.0/maven-ant- tasks-2.1.0.jar ${JAVA_HOME}/bin/java -cp $CLASSPATH jde.util.MavenUtils "$@" ----------snip On Apr 21, 2010, at 11:08 PM, James Ahlborn wrote: > alright, think this will work, although it's a bit of an ugly hack. > couldn't figure out a better way to get push and xml-node-attributes > to play nice together. > >> -----Original Message----- >> From: Paul Landes [mailto:paullan...@airpost.net] >> Sent: Thursday, April 15, 2010 9:33 AM >> To: James Ahlborn >> Subject: Re: jdee-users Digest, Vol 24, Issue 5 >> >> >> Emacs 22. >> >> On Apr 15, 2010, at 7:37 AM, "James Ahlborn" <jtahlb...@yahoo.com> >> wrote: >> >>> what version of emacs are you using? >>> >>>> -----Original Message----- >>>> From: Paul Landes [mailto:lan...@mailc.net] >>>> Sent: Wednesday, April 14, 2010 11:13 AM >>>> To: James Ahlborn >>>> Subject: Re: jdee-users Digest, Vol 24, Issue 5 >>>> >>>> >>>> Hi James, >>>> >>>> I'm using the elisp file you are using. With this code: >>>> >>>> (with-pom >>>> "/Users/landes/opt/var/maven/repo/org/apache/pdfbox/pdfbox/1.0.0/ >>>> pdfbox-1.0.0.pom" >>>> (list* target-directory test-target-directory >>>> (pom-compile-classpath pom-node))) >>>> >>>> It takes a good 10 seconds to come back, and then I get this: >>>> >>>> Debugger entered--Lisp error: (error "No setf-method known for xml- >>>> node-attributes") >>>> signal(error ("No setf-method known for xml-node-attributes")) >>>> error("No setf-method known for %s" xml-node-attributes) >>>> get-setf-method((xml-node-attributes pom) nil) >>>> cl-setf-do-modify((xml-node-attributes pom) (list)) >>>> #[(func arg1 place &rest args) "Æ!ƒ >>> >> No virus found in this incoming message. >> Checked by AVG - www.avg.com >> Version: 8.5.437 / Virus Database: 271.1.1/2811 - Release Date: >> 04/14/10 18:31:00 >> >> > <pom-parser.el> ------------------------------------------------------------------------------ _______________________________________________ jdee-devel mailing list jdee-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jdee-devel