簡體   English   中英

Maven:jar中沒有Scala類包

[英]Maven: no Scala classes bundles in jar

我的項目結構看起來像

project/pom.xml
       /services/pom.xml
                src/main/scala/(scala class here)
                src/main/resources/application.conf
       /manager/pom.xml
                src/main/scala/(scala class here)
                src/main/resources/manager.conf

services/pom.xml看起來像

   <properties>
        <akka-http.version>1.0</akka-http.version>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.shn.enterpriseconnector</groupId>
            <artifactId>manager</artifactId>
            <version>${project.version}</version>
        </dependency>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-http-experimental_2.11</artifactId>
            <version>${akka-http.version}</version>
        </dependency>
        <dependency>
            <groupId>com.typesafe.akka</groupId>
            <artifactId>akka-http-spray-json-experimental_2.11</artifactId>
            <version>${akka-http.version}</version>
        </dependency>
    </dependencies>

但是當我執行mvn clean install並檢查jar的內容時,我看到了

$ jar -tvf service/target/service-1.0-SNAPSHOT.jar 
     0 Thu Jul 30 09:45:12 PDT 2015 META-INF/
   130 Thu Jul 30 09:45:10 PDT 2015 META-INF/MANIFEST.MF
   629 Thu Jul 30 09:45:12 PDT 2015 application.conf
     0 Thu Jul 30 09:45:12 PDT 2015 META-INF/maven/
     0 Thu Jul 30 09:45:12 PDT 2015 META-INF/maven/com.shn.enterpriseconnector/
     0 Thu Jul 30 09:45:12 PDT 2015 META-INF/maven/com.shn.enterpriseconnector/service/
  1284 Thu Jul 30 09:38:30 PDT 2015 META-INF/maven/com.shn.enterpriseconnector/service/pom.xml
   126 Thu Jul 30 09:45:12 PDT 2015 META-INF/maven/com.shn.enterpriseconnector/service/pom.properties

project.pom.xml ,我有

<properties>
    <scala-library.version>2.11.7</scala-library.version>
    <akka.version>2.3.12</akka.version>
</properties>

<dependencies>
    <dependency>
        <groupId>org.scala-lang</groupId>
        <artifactId>scala-library</artifactId>
        <version>${scala-library.version}</version>
    </dependency>
    <dependency>
        <groupId>com.typesafe.akka</groupId>
        <artifactId>akka-actor_2.11</artifactId>
        <version>${akka.version}</version>
    </dependency>
</dependencies>

<build>
    <defaultGoal>clean install</defaultGoal>
    <plugins>
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.2.1</version>
        </plugin>
    </plugins>
</build>

但是我什么也沒看到,沒有我的項目類,沒有依賴類

在外觀上,結構看起來像
在此處輸入圖片說明

我想念什么?

我花了一些時間閱讀和嘗試一些事情,並遵循project/pom.xml更改對我來說很有效

<build>
    <defaultGoal>clean install</defaultGoal>
    <sourceDirectory>src/main/scala</sourceDirectory>
    <plugins>
        <plugin>
            <!-- see http://davidb.github.com/scala-maven-plugin -->
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.2.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                        <goal>testCompile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy-dependencies</id>
                    <phase>prepare-package</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>
                        <overWriteReleases>false</overWriteReleases>
                        <overWriteSnapshots>false</overWriteSnapshots>
                        <overWriteIfNewer>true</overWriteIfNewer>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>EnterpriseConnectorServer</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>

至少,這應該起作用:

<build>
    <plugins>
        <plugin>
            <groupId>net.alchim31.maven</groupId>
            <artifactId>scala-maven-plugin</artifactId>
            <version>3.2.2</version>
            <executions>
                <execution>
                    <goals>
                        <goal>compile</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

暫無
暫無

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

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