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