Java scala maven插件未将scala文件打包到jar中
我是maven的新手,目前正在尝试用它组装scala项目。项目结构: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
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安装
,这也可能有帮助: