The problem is that my scala plugin project has additional dependencies. These are added to pluginClassPath, but then you only add the first element from pluginClassPath (why the first? this seems a bit arbitrary).
If you wouldn't mind fixing this (in github master), I'd appreciate it very much. I don't think users would ever want to add deps of the project as plugins, so perhaps the changes below would work. Also, is the latest version on a public site? regards, Nicholas https://ntung.com + protected void addToClasspath(BasicArtifact artifact_info, + Set<String> classpath, boolean add_deps) throws Exception + { + addToClasspath(factory.createArtifact(artifact_info.groupId, + artifact_info.artifactId, artifact_info.version, + Artifact.SCOPE_RUNTIME, "jar"), classpath, add_deps); + } + protected void addToClasspath(Artifact artifact, Set<String> classpath, + boolean add_deps) throws Exception + { resolver.resolve(artifact, remoteRepos, localRepo); classpath.add(artifact.getFile().getCanonicalPath()); - for(Artifact dep: resolveArtifactDependencies(artifact)) { - classpath.add(dep.getFile().getCanonicalPath()); + if (add_deps) { + for (Artifact dep : resolveArtifactDependencies(artifact)) { + classpath.add(dep.getFile().getCanonicalPath()); + } } } + /** + * Retrieves a list of paths to scala compiler plugins. + * @return The list of plugins + * @throws Exception + */ + private Set<String> getCompilerPlugins() throws Exception { + Set<String> plugins = new HashSet<String>(); + if (compilerPlugins != null) { + Set<String> ignoreClasspath = new HashSet<String>(); + addToClasspath(SCALA_GROUPID, "scala-compiler", scalaVersion, + ignoreClasspath); + addToClasspath(SCALA_GROUPID, SCALA_LIBRARY_ARTIFACTID, + scalaVersion, ignoreClasspath); + for (BasicArtifact artifact : compilerPlugins) { + System.out.println("compiler plugin: " + artifact.toString()); + // TODO - Ensure proper scala version for plugins + Set<String> pluginClassPath = new HashSet<String>(); + addToClasspath(artifact, pluginClassPath, false); + pluginClassPath.removeAll(ignoreClasspath); + plugins.addAll(pluginClassPath); + } + } + return plugins; + } On Wed, Jul 22, 2009 at 12:43 PM, Nicholas Tung <gatoatigr...@gmail.com>wrote: > It looks like you're setting this stuff with javadoc... imho, an attribute > is a bit more robust. Also, you have > > <compilerPlugins> <dependency> > instead of <compilerPlugins> <compilerPlugin>, but changing it doesn't seem > to help (it then compiles without any plugin). > > If you could point me to other relevant code (I'm looking at > ScalaMojoSupport.java), that would be much appreciated. > > Thanks in advance, > Nicholas > https://ntung.com > > On Wed, Jul 22, 2009 at 12:12 PM, Nicholas Tung <gatoatigr...@gmail.com>wrote: > >> Hi Josh, >> >> Thanks; the repo is at [1], and I've attached the plugin (though I >> suspect it has more to do with command line compilation rather than the >> plugin itself). >> >> I might end up overriding the main compiler class (i.e. not >> scala.tools.nsc.Main), so I could probably hack something from there. >> >> I got github master to build... if you could tell me where things are, >> I'd appreciate it. >> >> regards, >> Nicholas >> https://ntung.com >> >> [1] http://github.com/gatoatigrado/skalch/tree/master >> >> >> On Wed, Jul 22, 2009 at 8:34 AM, Josh Suereth >> <joshua.suer...@gmail.com>wrote: >> >>> Does your scalac plugin depend on any other plugins? If you can point me >>> towards a repository holding your scalac plugin, I can create an integration >>> test for this use case. I'm adding it to the list of known issues. >>> >>> - Josh >>> >>> >>> On Wed, Jul 22, 2009 at 2:43 AM, Nicholas Tung >>> <gatoatigr...@gmail.com>wrote: >>> >>>> Hi David and Josh, >>>> >>>> I'm having some trouble with the maven scala plugin; it doesn't seem >>>> to be setting the -Xplugin line correctly when I try to build a project >>>> [1]. >>>> The configuration passed to the maven-scala-plugin is [2]. I'm running >>>> $(mvn >>>> install -Dmaven.scala.displayCmd=true). >>>> >>>> Feel free to look at the pom.xml files if you want [3], but don't >>>> feel obliged... I haven't done proper Scala / Java separation yet (among >>>> other things to clean it up). >>>> >>>> Thanks so much! >>>> Nicholas >>>> https://ntung.com >>>> >>>> [1] >>>> version 2.10 gives >>>> >>>> -Xplugin:/home/gatoatigrado/.m2/repository/org/scala-tools/maven-scala-plugin/2.10/maven-scala-plugin-2.10.jar >>>> >>>> version 2.11 gives >>>> -Xplugin:/home/gatoatigrado/.m2/repository/xom/xom/1.1/xom-1.1.jar >>>> >>>> the correct version should be >>>> -Xplugin:/home/gatoatigrado/.m2/repository/edu/berkeley/cs/sketch/skalch-plugin/git-master/skalch-plugin-git-master.jar >>>> >>>> >>>> [2] >>>> <compilerPlugin> >>>> <groupId>edu.berkeley.cs.sketch</groupId> >>>> <artifactId>skalch-plugin</artifactId> >>>> <version>git-master</version> >>>> </compilerPlugin> >>>> >>>> [3] http://github.com/gatoatigrado/skalch/tree/master >>>> >>> >>> >> >