簡體   English   中英

scala maven插件沒有將scala文件打包成jar

[英]scala maven plugin not packaging scala files into jar

我是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編譯的類。

問題:誰在執行mvn install后將.class文件添加到最終的jar 如何添加使用scala編譯器編譯的.class -files?

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>

你可以嘗試使用“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>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM