[英]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.