Hey, I just go this email.  I'll make the patch and commit shortly.  Thanks
for the submission!

There's still some mismatch since we re-built the scala-tools.org server, so
the maven-scala-plugin nightlies are not getting published.  I'm going to
try to resolve that shortly.

- Josh

On Wed, Jul 22, 2009 at 4:14 PM, Nicholas Tung <gatoatigr...@gmail.com>wrote:

> 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
>>>>>
>>>>
>>>>
>>>
>>
>

Reply via email to