GeneXusの自作モジュールの配布方法(nexusサーバー)について。
GeneXusの自作モジュールを配布するサーバーnexusの設定のメモ
なんか4年前くらいに書いてたのを思いだして再配布できるようになってたから調べたら
いろいろ罠があって、でもできたので一応載せておきますw
(まぁ俺がやるんだからできて当然だよね!)
使用した環境
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/
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)があるのでそれを参照
初回ログイン後は
パスワードの変更があるので、画面に従ってパスワードを変更する。
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>
<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でみんなオシャレ(笑)なの作ってるんだから
問題ないでしょう!!!!!!!!
これからもコッチ系の機能が拡充することを願ってます!
以上!!!!!