【GeneXus】モジュールサーバー

GeneXusの自作モジュールの配布方法(nexusサーバー)について。

GeneXusの自作モジュールを配布するサーバーnexusの設定のメモ

なんか4年前くらいに書いてたのを思いだして再配布できるようになってたから調べたら
いろいろ罠があって、でもできたので一応載せておきますw
(まぁ俺がやるんだからできて当然だよね!)


参考
モジュールサーバーwiki.genexus.jp

使用した環境

GeneXus 17u10
Docker Desktop 4.16.3
Maven 3.9.0
sonatype nexus(最新版:OSS 3.47.1-01)

今回はメンドイのでDockerを使用。
Dockerとmaven使ったことない人はちょっと難しいかもね!

ざっくりした流れとしては
dockerでnexusサーバーを起動して、Repositoryを作成して
GXからmavenを使用してnexusサーバーにアップロードして
他のGX(違うKB)でnexusサーバーからモジュールをダウンロードする。って感じです。

sonatype nexusとは

コンポーネントパーツ、アセンブリ、完成品の管理・配布を行うための、サーバーソフトウェアです。
ブラウザで管理画面を表示し
コンポーネントパーツ等を管理するタイプのサーバーソフトウェアです。

docker

作業前にdockerのアップデートは適当に。

nexusのimageを取得してコンテナを起動するんですが
ここが罠。GeneXus wikiに書いてるURLは古くて最後のほうに行くと
うまく動かないという罠。

GeneXus wikiに書いてるURL:https://hub.docker.com/r/sonatype/nexus/
最新のURL:https://hub.docker.com/r/sonatype/nexus3/

pull

docker pull sonatype/nexus3

Adminのパスワードが必要なので永続データをボリュームで外だし、ボリュームのパスは個人の環境なので適当に。

起動

docker run -d -p 8081:8081 --name nexus -v C:\docker\nexus\nexus-data:/nexus-data sonatype/nexus3
確認

docker ps

以下のURLにアクセス
http://localhost:8081/
(起動まで少しかかる)

起動完了

nexusにログインします。
ID:admin
パスワード:ボリュームの中にパスワードファイル(admin.password)があるのでそれを参照

初回ログイン後は
パスワードの変更があるので、画面に従ってパスワードを変更する。

リポジトリを作成

いろいろと設定(とくにこだわり無い場合はデフォルトでOK)

maven

nexusにアップロードするのにmavenが必要なので、入ってない人は入れてください。

URLからmavenのZipをダウンロードして、ダウンロードしたZipを適当なところに解凍して、Pathを通す。
https://maven.apache.org/download.cgi

今回は「apache-maven-3.9.0-bin.zip」を使用。

以下のコマンドでPathが通ったか確認

バージョン確認

mvn -version
Apache Maven 3.9.0 (9b58d2bad23a66be161c4664ef21ce219c2c8584)
Maven home: C:\Maven\apache-maven-3.9.0
Java version: 17.0.2, vendor: Oracle Corporation, runtime: C:\Program Files\Java\jdk-17.0.2
Default locale: ja_JP, platform encoding: MS932
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

設定ファイルを作成(ディレクトリが無い場合は手動で作成)
%USERPROFILE%\.m2\settings.xml

%USERPROFILE%がわからない場合には、cmdで%USERPROFILE%をechoすればOK。

settings.xml

<settings> <servers> <server> <id>★nexus側で作ったRepositoryのName</id> <username>admin</username> <password>★adminのパスワード</password> </server> </servers>
</settings>

今回はお試しなのでadminでアップロード&取得します。

モジュールアップロード

GeneXusからモジュールサーバー(Nexus)を追加。
メニューの
ナレッジマネージャー > 参照モジュールの管理 を開く

追加をクリックして必要な情報を設定。

モジュールを適当に作成

モジュールを右クリックして モジュールのパッケージを作成 を選択。
なんかいろいろと設定(お試しなので全部適当)

一番下の公開するサーバーは
追加したサーバー「oqiita-test-20230214」を選択。

エラーが出なければアップロード完了。

モジュールダウンロード

次はモジュールを使いたいKBからダウンロードを行う。

URL等の設定はアップロードを行ったら、すでにいるはず。
違うPCで使用したい場合は
GeneXusからモジュールサーバー(nexus)を追加する。

メニューの
ナレッジマネージャー > 参照モジュールの管理 を開き、
サーバーを選択し、先ほどアップロードしたモジュールがあることを確認する。

インストールボタンを押せば、ダウンロードとインストールができるので、
あとは使用してみる。

今回はお試しなので引数の数字を足してくれるだけの処理。

制約

制限事項としては画面とかトランザクションは含めることができません。
この記事読んでる人はそれくらい当然理解してるでしょう!

エラー

モジュールを使用するさいにビルド(or コンパイル)でエラーが出る場合は
モジュールのバージョンをアップして、再公開するとウマくいく場合があるので、お試しください。
(エラーの原因は知らん!)

まとめ

前々から再配布ができることは知ってましたが、手順がめんどくさそう&Dockerのやり方毎回忘れるので
手を付けてなかったですが、Dockerは使ってたので
今がチャンス!とばかりに使ってみましたw

やっぱり配布ができて、バージョンも管理できるっていいですね!
画面系が配布できないという欠点?がありますが、
どうせ画面とかWork With Plusでみんなオシャレ(笑)なの作ってるんだから
問題ないでしょう!!!!!!!!

これからもコッチ系の機能が拡充することを願ってます!

以上!!!!!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください