Docker イメージをビルドする Maven プロジェクトがあります (fabric8 docker-maven-plugin を使用)。
ビルドの一環として、単純な C クラスをコンパイルします。
#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
setuid( 0 );
system( "/usr/sbin/update-ca-certificates");
return 0;
}
Maven ビルド中に Docker イメージにコピーされるバイナリに変換します。
これを行う最善の方法は何ですか?少なくとも 2 つの Maven プラグインは知っていますが、どれを使用すればよいか、どのオプションが必要なのかわかりません。Maven ビルドは Windows、Linux、または Mac で実行できますが、結果のバイナリは Linux (Opensuse) でのみ実行されます。
https://www.mojohaus.org/maven-native/native-maven-plugin/
https://github.com/maven-nar/nar-maven-plugin
たとえば、上記の 2 つのプラグインでは、pom.xml の最上位に<packaging>so</packaging>
or要素が必要なようですが、私の pom.xml には既に?があります。上記のプラグインは、独自の pom.xml で Maven サブモジュール プロジェクトに入れる必要がありますか?<packaging>nar</packaging>
<packaging>pom</packaging>