плагин Scala Maven не упаковывает файлы Scala в банку

2

Я новичок в maven и в настоящее время пытаюсь собрать с ним проект scala. Структура проекта:

dir
 |
 |--src/main/java
 |
 |--src/main/scala
 |
 |--pom.xml

Я был удивлен тем, что классы, скомпилированные из *.java заканчиваются в банке, но один из компилируемых из *.scala этого не делает. Я добавил эти плагины в pom.xml

<plugins>
    <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>3.1.3</version>
    </plugin>
    <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
            <source>1.8</source>
            <target>1.8</target>
        </configuration>
    </plugin>
    <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.4</version>
        <configuration>
            <archive>
                <manifest>
                    <addClasspath>true</addClasspath>
                    <classpathPrefix>lib/</classpathPrefix>
                    <mainClass>HelloWorld</mainClass>
                </manifest>
            </archive>
        </configuration>
    </plugin>
</plugins>

Я, хотя maven-jar-plugin, отвечает за сборку jar файлов. Но по какой-то причине он не добавляет scala-скомпилированные классы.

ВОПРОС: Кто добавляет файл .class в финальную jar после выполнения mvn install? Как добавить .class -files, скомпилированный с помощью компилятора scala?

Показать ещё 1 комментарий
Теги:
maven
jar

2 ответа

0

Можете ли вы попробовать что-то подобное, используя вместо этого "scala-maven-plugin". Затем выполните mvn clean package maven: mvn clean package

<build>
<sourceDirectory>${basedir}/src</sourceDirectory>
<resources>
    <resource>
        <directory>${basedir}/src/test/resources</directory>
    </resource>
</resources>
<plugins>
    <plugin>
        <groupId>net.alchim31.maven</groupId>
        <artifactId>scala-maven-plugin</artifactId>
        <version>${scala-maven-plugin.version}</version>
        <configuration>
            <sourceDir>${basedir}/src</sourceDir>
            <outputDir>${basedir}/target/classes</outputDir>
        </configuration>
        <executions>
            <execution>
                <id>scala-compile-first</id>
                <phase>process-resources</phase>
                <goals>
                    <goal>compile</goal>
                </goals>
            </execution>
        </executions>
    </plugin>
 </plugins>

0

mvn package будет строить вашу банку, однако maven-compiler-plugin будет компилировать ваши исходные файлы java, а не ваши исходные файлы scala. Scala-maven-plugin можно использовать для компиляции как java, так и scala-источников.

Я написал сообщение в блоге об этом некоторое время назад, что может помочь http://blog.rizvn.com/2016/04/scala-and-maven.html

Вам нужно будет сообщить maven о src/main/scala, так как вы ставите свой scala-код под src/main/java. Это делается через секцию сборки следующим образом:

<build>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <testSourceDirectory>src/test/scala</testSourceDirectory>
 ...
</build>

Ещё вопросы

Сообщество Overcoder
Наверх
Меню