spark任務scala的jar包無法找到主類

記錄一次困擾良久的問題

編譯之後運行 無論如何也無法找到主類入口。

死活認不出來,我這個是maven編譯的編譯標籤方法如下

 <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!--下面必須指定好主類 如com.my.Main -->
                            <mainClass>spark.bim.SparkTest</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
      <plugins>
<build>
        

狗屎一樣難用的idea執行了mvn assembly:assembly後就是spark報錯無法找到我定義的類。然後各種百度+谷歌搜了衆多解決方案,嘗試無果。

發現idea生成路徑沒有class文件,推測idea默認不編譯scala語言

心中一萬匹草泥馬
解決方案如下

<build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                            <!--下面必須指定好主類 如com.my.Main -->
                            <mainClass>spark.bim.SparkTest</mainClass>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>8</source>
                    <target>8</target>
                </configuration>
            </plugin>
            <plugin>
                <groupId>net.alchim31.maven</groupId>
                <artifactId>scala-maven-plugin</artifactId>
                <version>3.2.1</version>
                <executions>
                    <execution>
                        <id>scala-compile-first</id>
                        <phase>process-resources</phase>
                        <goals>
                            <goal>add-source</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

果真是狗屎一樣的idea,我都寫了代碼建了類添加到工程項目路徑,憑啥你默認不給我編譯,你這默認也太奇葩了吧,簡直可以說是愚蠢。

從此idea一生黑,vs吹爆天。
就衝vs人性化的引導方式和智能提示以及一些默認約定合理性,足夠吹爆天。

vs宇宙第一IDE,這次idea着實把我搞炸了,這一個問題困擾我好幾天。IDE是給人提供方便不是衝着精簡經量化就好的,許多人吹vs臃腫佔地方,你是真沒的黑了吧,vs個性化安裝你不理全給勾上是大,再說了輕量化這個屬性從來都不是工具的好壞衡量標準。(我給你一把泡沫錘子你去砸個釘子,試試,輕量化?呵呵)

發佈了26 篇原創文章 · 獲贊 26 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章