【Console Application】外部関数 14【学習記】

いわゆる include よー🤤

Q.
import できたんじゃないの?
A.
jar でならできたけどプロジェクトを取り込んでできるようにしたい😞

→ import の沼は深い…🙄

#IntelliJ #Kotlin #import
#学習記


それじゃ、今回はライブラリのプロジェクトを取り込んで import する方法の調査開始よー🤪

の前に

画像1

依存関係が付いたままなのでこれ取っても動くか確認🤤
調べると大体は「プロジェクトに読み込む」「 implementation を追記」としか書かれてないから消しても大丈夫なのでは?🤔という話。

画像2

問題なく動作☺️

画像3

依存関係確認してたら main と test に勝手に登録されているので恐らく正しく build.gradle を記述するとそこを読み取って表示が追加されているのかなと思う🤤
プロジェクトルートには何も無かったからこの依存関係の指定の仕方が正解なんだなというのが判る😞


一旦除外

画像4

画像5

implementation 切って、前回複製で持ってきた jar をゴミ箱へ…🤤

画像6

キャッシュ削除後、確認したらとりあえずモジュールからは居なくなってる🤤(そりゃそうだ


再びプロジェクト取り込み状態から

画像7

画像8

この状態から再開🤤
jar が無い状態で import できるようになるんだろうか…?🤔
予測としては

・ jar の出力が要る
・ build に有る ????Kt.class が作れれば良し
・その他

のどれかかなと思うのだけど…🙄
以前あれこれいじってた時に取り込みオブジェクトの出力先を決める設定が有った気がしたからそれを固有の場所に設定してその場所にできる jar なり class なりを implementation で取り込む、という手順になる…気がする🤪
現状では前回動作済 jar を生成できるプロジェクトを取り込んでいるので out にある jar に参照を貼れば一発解決なんだけど余り美しい仕上がりではないなと感じるから何か手立てが有る気がするのよね🤔

それ以前にまだ実行できる状態になってないからそこから🤤


調査

別プロジェクトのモジュールを参照するには
https://www.nakamuri.info/mw/index.php/%E5%88%A5%E3%83%97%E3%83%AD%E3%82%B8%E3%82%A7%E3%82%AF%E3%83%88%E3%81%AE%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB%E3%82%92%E5%8F%82%E7%85%A7%E3%81%99%E3%82%8B%E3%81%AB%E3%81%AF

以前も見たサイト再び🤤
このサイトを見る限りでは settings.gradle にプロジェクトのショートカット登録を行って build.gradle にコンパイルして使う指示、の様な手順を踏めという感じの流れなのかなと思う🤔
しかし、前回 implementation に記述した fileTree() とやらの kts への書き換えを見る感じでは build.gradle に書くだけで通りそうな感じがしなくもない🤪
少なくともこの記事が groovy拡張子が付かない古いbuild.gradle の書式だというのは判るので kts での記法を探す必要が有るのは間違いない😞
記事からすると class や jar を生成しなくても compile 指示によって生成してからなんとかする筈なので出力先とかは変更する事は無いかな…と思う🤤(ぉ

ひとつのbuild.gradle.ktsファイルでマルチプロジェクトを構成したい
https://footaku.hatenablog.com/entry/2020/09/09/210512

多分、やりたい事の例になっている気がするのだけど、全く頭に入ってこない😞
何となく、これではないのかなって気がする🤪
一応参考資料として確保…🤤

Gradleのマルチプロジェクト設定方法
https://qiita.com/BooookStore/items/695b199a5d13f633a2dc

これまた、近い気がするけど、全く頭に(以下略🤪💥ガッ🤛

GradleのマルチプロジェクトによるKotlin、Spring Bootでのオニオンアーキテクチャの実現
https://blog.takehata-engineer.com/entry/realizing-an-onion-architecture-in-kotlin-and-spring-boot-with-gradle-multi-project

この記事を見る限りでは、結局 settings.bradle.kts に手を入れる必要がありそう🙄
もしかしたら implementation の記述の所で直接展開した状態で指定する事もできそうな気がするけど作法としては古流groovyに従うのかなと思う🤔


とりあえず試す

画像9

画像10

画像11

😞デスヨネー

まぁ一発で行くとは思ってなかったけど

build.gradle.ktsへの書き換えとハマリポイント part 1
https://qiita.com/chibatching/items/d63c0c9afc8e1e6bc9de

エラーで検索したら前回 fileTree() の書き換え方を調べた時に出てきた記事が現れた🙄マジデ?
でも、エラーの語が多すぎてかかってるだけっぽくてこの記事は今回は役に立たず…😞

よく見ると、外部関数zlib_ktプロジェクト側でエラーを吐いてるっぽい🙄

画像12

hello,world 実行、でやっても同じエラーが出ているけど表記内容がちょっぴり違う🤪
どうやら plugin の version 違うぞって言ってるみたいなんだけど、これ↑の記事のハマリで出てきてる話かな?
このバージョン差異のエラー取ったらイケるのかな?🤔
今までの感じからすると別のエラーが出て止まる気がするけどまずこのバージョン不一致を解決する必要が有りそう🤤


次回は

バージョン不一致?を解決する方法を探すところから🤤

この記事が気に入ったらサポートをしてみませんか?