問題タブ [jsr354]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - JavaMoney 依存関係が POM としてのパッケージである理由は?
私はビルドシステムの経験があまりありませんが、これは興味をそそられました。
ほとんどのライブラリは<type>jar</type>
依存関係に (デフォルト) を使用しますが、JavaMoney ライブラリはpom
代わりに使用します。理由は何ですか?
java - MonetaryException: MonetaryAmountsSingletonSpi がロードされていません
問題の説明
からのgradle依存関係を持つJavaプロジェクトがありorg.javamoney:moneta:1.3
ます。
また、2 つの Kubernetes クラスターがあります。docker-container を使用して Java アプリケーションをデプロイします。
最初のKubernetes クラスターにアプリをデプロイすると、すべて問題ありません。しかし、 2 番目のKubernetes クラスターにアプリ (同じ docker-container) をデプロイすると、次のエラーが表示されます。
次のコードに表示されます。
ソフトウェアのバージョン
- モネタ:
1.3
。 - グラドル:
6.0.1
. - ベース docker-image:
openjdk:11.0.7-jdk-slim
. - スプリングブーツ:
2.2.7.RELEASE
. - Kubernetes (両方のクラスターで同じバージョン):
Server Version: version.Info{Major:"1", Minor:"15", GitVersion:"v1.15.3", GitCommit:"2d3c76f9091b6bec110a5e63777c332469e0cba2", GitTreeState:"clean", BuildDate:"2019-08-19T11:05:50Z", GoVersion:"go1.12.9", Compiler:"gc", Platform:"linux/amd64"}
. - ジャワ:
java -version openjdk version "11.0.7" 2020-04-14 OpenJDK Runtime Environment 18.9 (build 11.0.7+10) OpenJDK 64-Bit Server VM 18.9 (build 11.0.7+10, mixed mode)
.
私が試したこと
gradle-dependency を別の方法で宣言する
私はこの質問を見つけ、別の方法でgradle-dependencyを宣言しようとする考えを与えてくれました。私が試してみました:
implementation 'org.javamoney:moneta:1.3'
compile group: 'org.javamoney', name: 'moneta', version: '1.3', ext: 'pom'
compile 'org.javamoney:moneta:1.3'
runtimeOnly 'org.javamoney:moneta:1.3'
残念ながら、それは肯定的な結果をもたらしませんでした。
Moneta のサービス ローダー構成をコピーして貼り付ける
このコメントで述べたように、Monetaから次のプロジェクト ディレクトリにサービス ローダーの設定をコピーしようとしました: src/main/resources/META-INF/services
.
残念ながら、それは役に立ちませんでした。
春なしでカスタム通貨を初期化する
メインクラスだけでやろうとしましたが、問題は解決しませんでした。
質問
- この問題の根本原因は何ですか?
- この問題の適切な解決策は何ですか?