ラズパイでMavenのセットアップ
PI4JとMaven(Pi4Jプロジェクト)のサイトを参照しました。
行ったことは次の通りです。
Mavenアーキタイプのインストール
pi4j-maven-archetypeからZIPファイルをダウンロードして、展開し、mvn installコマンドの実行
イントロダクション
ラズパイにMavenをインストールする方法を記載いたします。Mavenはビルドツールの一つで、いろんな場所で使用されています。早い話が、プログラムのコンパイル~実行、テスト、Githubからソースのダウンロードなどを行ってくれる便利ツールというところです。
そして、自分の目的としてはJavaFXを起動するというとこです。
ちなみに、JavaFXは下のようなGUIアプリケーションを作成することができます。
画面上のPNG画像を動かして、画面の下部分に文字を表示したりしています。
Mavenのインストール手順
簡単に「apt-get install」を使用します。下のコマンドをたたきます。
sudo apt install maven -y
そして、インストール確認をします。
mvn -v
そして、JDK17のインストールも必要です。ベルソフトのJDKを使用します。
環境変数の設定
次の環境変数を設定します。そして、環境変数を確認するのは「printenv」で確認できます。そして、「~/.bash_profile」に環境変数を設定するスクリプトを書きます。
M2_HOME=Mavenのパス:mvn -vで対象のパスが表示できます。M2=$M2_HOME/bin
JAVA_HOME=Javaがインストールされているディレクトリ
- MAVEN_HOME
エラー対応
下のようなエラーメッセージが出ました。
依存関係が解決しない
Could not resolve dependencies for project groupId:
実行する前に、次のコマンドでインストールしておく
mvn install -Djavafx.platform=linux
これで対象のプラットフォームを選択することができる。
使用できる値は「win」「mac」「linux」の3種類のようだ。
コンパイラープラグイン
下のようなエラーが出ました。
Execution default-compile of goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile failed: Unsupported major.minor version 61.0
JavaFXを使うのでベルソフトのJDKを使用していましたが、13だったのでこれを17にアップグレードというか新しものをインストールしました。
ラズパイなのでベルソフトのサイトからdebファイルをダウンロードしてdpkgコマンドでインストールしました。
目的
作成したJavaアプリをRPiにMaven InstallでGitから持ってきて起動するため
手順
以下のコマンドを叩きます。command as bellow
>apt-get install maven
以上。。。
追伸、Javaのインストールに関しては、必要なJDKをダウンロードしてきた方が早いと思うのでOracleからダウンロードしてしまう方法でやりました。
maven-antrun-plugin
下のようなエラーが出ました。
package java.awt.image is not visible
モジュールの追加をすることで解決しました。
module-info.javaに以下のように記述
// Add Modules
requires java.desktop;
Apacheのサイトを参考にします。
やりたいことは、このプラグインでコンパイルするときに参照するJARファイルを追加したいということです。
下のようにやるようです。
<plugin>
<executions>
<execution>
<id>compile</id>
<phase>compile</phase>
<configuration>
<target>
<property name="compile_classpath" refid="maven.compile.classpath"/>
<property name="runtime_classpath" refid="maven.runtime.classpath"/>
<property name="test_classpath" refid="maven.test.classpath"/>
<property name="plugin_classpath" refid="maven.plugin.classpath"/>
<echo message="compile classpath: ${compile_classpath}"/>
<echo message="runtime classpath: ${runtime_classpath}"/>
<echo message="test classpath: ${test_classpath}"/>
<echo message="plugin classpath: ${plugin_classpath}"/>
</target>
</configuration>
</execution>
</executions>
</plugin>
インストール後
Windows端末で開発したコードをGitでダウンロードしてやる場合
次のコマンドでGitからプロジェクトをクローン(ダウンロード)
git clone 対象のURL
そして、クローンしたプロジェクトをセットアップ。つまり必要な依存関係をインストールする
ちなみに、「sudo」をつけるとダウンロード先がroot直下になるので注意
mvn clean install -U
そしてコンパイル
mvn compile
JavaFXの実行(javafx-maven-pluginを使用している)
mvn javafx:run
通常の実行
mvn exec:java