Можно ли в IDE разрешать классы Scala в Java с помощью Maven? - PullRequest
3 голосов
/ 03 августа 2010

У меня есть проект со смешанными исходниками Java и Scala, следуя инструкциям на этой странице , который работает при запуске Maven из командной строки.

Однако люди, использующие IDE, такие как IDEA и Netbeans, испытывают проблемы с разрешением классов Scala в коде Java (но не наоборот, благодаря доступным хорошим плагинам). Есть ли способ их решить?

Примечание: я могу собрать из командной строки очень хорошо; классы Scala компилируются перед классами Java. Я просто хочу, чтобы IDE это тоже узнала. Я мог бы создать отдельный модуль для классов Scala, чтобы решить эту проблему, но мне это кажется излишним.

Примечание: в IDEA у меня есть "Сначала скомпилировать классы Scala", и это все еще не помогает.

Обновление: вот версии, которые я использую: Scala-библиотека 2.8.0 maven-scala-плагин 2.12 IDEA 9.0 Ultimate с последним плагином Scala из репозитория плагинов NetBeans 6,9 с ночным плагином Scala

Ответы [ 2 ]

1 голос
/ 07 марта 2012

Я пытаюсь понять, как работать с Eclipse Indigo + Scala IDE 2.9, m2eclipse, смесью scala 2.9 + jdk1.7 без удачи.

Я обнаружил, что использование плагина maven eclipse (mvn eclipse: eclipse) и импорт проекта как проекта eclipse (не проекта maven) с приведенной ниже настройкой убрали метки ошибок.

<plugin>
    <groupId>org.scala-tools</groupId>
    <artifactId>maven-scala-plugin</artifactId>

    <executions>
        <execution>
            <id>scala-compile-first</id>
            <phase>process-resources</phase>
            <goals>
                <goal>add-source</goal>
                <goal>compile</goal>
            </goals>
        </execution>
        <execution>
            <id>scala-test-compile</id>
            <phase>process-test-resources</phase>
            <goals>
                <goal>testCompile</goal>
            </goals>
        </execution>
    </executions>
</plugin>

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>

    <executions>
        <execution>
            <id>add-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>src/main/scala</source>
                </sources>
            </configuration>
        </execution>
        <execution>
            <id>add-test-source</id>
            <phase>generate-sources</phase>
            <goals>
                <goal>add-test-source</goal>
            </goals>
            <configuration>
                <sources>
                    <source>src/test/scala</source>
                </sources>
            </configuration>
        </execution>
    </executions    
</plugin>

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-eclipse-plugin</artifactId>
    <version>2.8</version>

    <configuration>
        <downloadSources>true</downloadSources>
        <downloadJavadocs>true</downloadJavadocs>
        <projectnatures>
            <projectnature>org.scala-ide.sdt.core.scalanature</projectnature>
            <projectnature>org.eclipse.jdt.core.javanature</projectnature>
        </projectnatures>
        <buildcommands>
            <buildcommand>org.scala-ide.sdt.core.scalabuilder</buildcommand>
        </buildcommands>
        <classpathContainers>
            <classpathContainer>org.scala-ide.sdt.launching.SCALA_CONTAINER"</classpathContainer>
            <classpathContainer>org.eclipse.jdt.launching.JRE_CONTAINER</classpathContainer>
        </classpathContainers>
        <excludes>
            <exclude>org.scala-lang:scala-library</exclude>
            <exclude>org.scala-lang:scala-compiler</exclude>
        </excludes>
        <sourceIncludes>
            <sourceInclude>**/*.scala</sourceInclude>
            <sourceInclude>**/*.java</sourceInclude>
        </sourceIncludes>
    </configuration>
</plugin>
1 голос
/ 03 августа 2010

Какие версии (Scala, IDE, плагинов Scala) вы используете?

У меня были те же проблемы, когда я начал использовать Scala 2.7 около 9 месяцев назад.Хотя я недавно не пробовал смешанный проект, я понял, что проблемы будут решены в Scala 2.8.Возможно, стоит попробовать Eclipse 3.5.2 с Scala 2.8 - у меня сложилось впечатление, что плагин Eclipse не отставал от изменений в 2.8 лучше, чем другие плагины IDE (но я могу ошибаться).

...