2016-04-13 19 views
0

私はHeroku上で実行されている非常に単純なSparkアプリケーションを取得しようとしています。ローカルで正常に動作します。 HerokuのいくつかのMavenスクリプトを私がよく理解していないので、これは微妙なMavenの問題だと思われます。ここでHeroku上のJavaがMain.classを見つけることができません

は私のpom.xmlです:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>SparkDemo</groupId> 
    <artifactId>SparkDemo</artifactId> 
    <version>0.0.1-SNAPSHOT</version> 
    <build> 
     <sourceDirectory>src</sourceDirectory> 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.3</version> 
       <configuration> 
        <source>1.8</source> 
        <target>1.8</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <executions> 
        <execution> 
         <phase>package</phase> 
         <goals> 
          <goal>single</goal> 
         </goals> 
        </execution> 
       </executions> 
       <configuration> 
        <descriptorRefs> 
         <!-- This tells Maven to include all dependencies --> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
        <archive> 
         <manifest> 
          <mainClass>Main</mainClass> 
         </manifest> 
        </archive> 
       </configuration> 
      </plugin> 
      <plugin> 
       <groupId>com.heroku.sdk</groupId> 
       <artifactId>heroku-maven-plugin</artifactId> 
       <version>0.4.4</version> 
       <configuration> 
        <jdkVersion>1.8</jdkVersion> 
        <!-- Use your own application name --> 
        <appName>still-journey-10861</appName> 
        <processTypes> 
         <!-- Tell Heroku how to launch your application --> 
         <!-- You might have to remove the ./ in front --> 
         <web>java -jar target/SparkDemo-0.0.1-SNAPSHOT-jar-with-dependencies.jar</web> 
        </processTypes> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 
    <dependencies> 
     <dependency> 
      <groupId>com.sparkjava</groupId> 
      <artifactId>spark-core</artifactId> 
      <version>2.3</version> 
     </dependency> 
     <dependency> 
      <groupId>com.j2html</groupId> 
      <artifactId>j2html</artifactId> 
      <version>0.5.0</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-csv</artifactId> 
      <version>1.2</version> 
     </dependency> 
    </dependencies> 
</project> 

私はHerokuの上の瓶の中を見たとき、私はすぐそこに関連するクラスを参照してください。

~ $ jar tf target/SparkDemo-0.0.1-SNAPSHOT.jar 
META-INF/ 
META-INF/MANIFEST.MF 
edu/ 
edu/brandeis/ 
edu/brandeis/cosi12b/ 
edu/brandeis/cosi12b/sparkdemo/ 
edu/brandeis/cosi12b/sparkdemo/Main.class 
edu/brandeis/cosi12b/sparkdemo/StudentChooserServer.class 
edu/brandeis/cosi12b/sparkdemo/StudentDirectory.class 
edu/brandeis/cosi12b/sparkdemo/StudentInfo.class 
studentnames.csv 
META-INF/maven/ 
META-INF/maven/SparkDemo/ 
META-INF/maven/SparkDemo/SparkDemo/ 
META-INF/maven/SparkDemo/SparkDemo/pom.xml 
META-INF/maven/SparkDemo/SparkDemo/pom.properties 

答えて

4

でクラス名が、完全でなければなりませんパッケージも。したがって、<mainClass>Main</mainClass>の代わりに<mainClass>edu.brandeis.cosi12b.sparkdemo.Main</mainClass>にする必要があります。

+0

ありがとうございます、あなたは私に多くの時間を救った! – pitosalas