Java scala maven插件未将scala文件打包到jar中

Java scala maven插件未将scala文件打包到jar中,java,scala,maven,jar,Java,Scala,Maven,Jar,我是maven的新手,目前正在尝试用它组装scala项目。项目结构: dir | |--src/main/java | |--src/main/scala | |--pom.xml 我有点惊讶,从*.java编译的类最终会出现在jar中,而从*.scala编译的类却没有。我将这些插件添加到pom.xml <plugins> <plugin> <groupId>net.alchim31.maven</groupId&g

我是maven的新手,目前正在尝试用它组装scala项目。项目结构:

dir
 |
 |--src/main/java
 |
 |--src/main/scala
 |
 |--pom.xml
我有点惊讶,从
*.java
编译的类最终会出现在jar中,而从
*.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>

net.alchim31.maven
scala maven插件
3.1.3
maven编译器插件
1.8
1.8
org.apache.maven.plugins
maven jar插件
2.4
真的
解放党/
你好世界
我认为maven jar插件负责组装jar文件。但由于某些原因,它没有添加scala编译类


问题:谁在执行
mvn安装后将
.class
文件添加到最终的
jar
?如何添加
.class
-使用scala编译器编译的文件?

mvn包将构建您的jar,但是maven编译器插件将只编译您的java源文件,而不是scala源文件Scala maven插件可用于编译java和Scala源代码

我不久前写了一篇关于这个的博客文章,这可能会有所帮助

您需要告诉maven关于src/main/scala的情况,因为您将scala代码放在src/main/java下。这是通过构建部分完成的,如下所示:

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

src/main/scala
src/test/scala
...

您可以尝试类似的方法,改用“scala maven插件”吗。然后执行maven目标:
mvn清理包

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

${basedir}/src
${basedir}/src/test/resources
net.alchim31.maven
scala maven插件
${scala maven plugin.version}
${basedir}/src
${basedir}/target/classes
scala先编译
过程资源
编译

您是否阅读了有关Scala Maven插件的文档?它是
mvn包
,而不是
mvn安装
,这也可能有帮助: