我是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>
我虽然maven-jar-plugin
负责组装jar文件。但由于某种原因,它不会添加scala编译的类。
问题: 在执行.class
后,谁将jar
文件添加到最终mvn install
?如何添加.class
- 用scala编译器编译的文件?
答案 0 :(得分:0)
mvn package
将构建你的jar,但是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>
答案 1 :(得分:0)
你能尝试使用“scala-maven-plugin”这样的东西。然后执行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>