2014/07/27

[maven] 如何編寫 java main class bat 或 sh 檔案

當用 main function 寫啟動檔來操作時,如果有 dependency 問題,就需要設定 classpath。
要在 linux 上執行,必須提供 sh 檔,而 windows 是 bat 檔。寫好 sh 檔也設定好 classpath,不知道哪裡出問題,就是丟出找不到 class 的 exception。開始尋找工具,發現有 plugin 可以幫忙產生啟動檔。

pom.xml 設定,在 <mainClass> 中填入 main method 的 class,這樣在每次 install 後會自動產生 bat 及 sh 檔案,產生的檔案會放在 project 下的 appassembler 資料夾中。
<plugin>
    <groupid>org.codehaus.mojo</groupid>
    <artifactid>appassembler-maven-plugin</artifactid>
    <version>1.8</version>
    <executions>
        <execution>
            <phase>package</phase>
            <goals>
                <goal>assemble</goal>
            </goals>
        </execution>
    </executions>
    <configuration>
        <programs>
            <program>
                <mainclass>${your_main_class}</mainclass>
            </program>
        </programs>
    </configuration>
</plugin>

Reference
https://www.mojohaus.org/appassembler/appassembler-maven-plugin/

沒有留言:

張貼留言