Jenkinsで、mavenを使用してパッケージxxxが存在しない問題が解決される
1 問題の発見
今日、Jenkinsを使って古いプロジェクトをパッケージ化しようとしたら、次のようなエラーが出てコンパイルできませんでした。
...
[ERROR] /var/lib/jenkins/workspace/fsti-pipe/src/main/java/com/fsti/oss/service/sys/PagerService.java:[6,52] package org. springframework.beans.factory.annotation does not exist
...
ログを見ると、直接的な原因はspring用のjarパッケージが存在しないことです!?
2 原因を見つける
ローカルの開発環境で、Jenkinsと同じmaven環境をideaのmavenで構築(新しいローカルリポジトリを有効にし、同じバージョンのmaven-compiler-pluginを使用)したところ、正常にコンパイルされました!!!。つまり、何か別の原因があるのでしょう。
Jenkinsで、該当プロジェクトの[Configure]リンクを開き、[Build]タブをクリックして、Goals for Mavenに以下を追加します。
-e -X
パラメータを Goals に設定し、保存します。
これにより、Mavenはビルド時に、より詳細なログを出力することができます。
ここで、プロジェクトを再度再構築し、出力ログをもう一度見てみましょう。
設定されたリポジトリが使用されたということは、リポジトリの構成に問題がないことを意味します。
[DEBUG] Using mirror nexus (http://xxx:8383/nexus/content/groups/public/) for snapshots (http://xxx:8081/nexus/content/repositories/ snapshots).
...
[DEBUG] Repositories (dependencies): [nexus-all (http://xxx:8081/nexus/content/groups/public, default, releases+snapshots), nexus (http:// xxx:8383/nexus/content/groups/public/, default, releases+snapshots)]
...
jdk パッケージで参照される依存パッケージのパスには誤りがあり、実際には
/xxx/D:\Program Files\apache-maven\repo...
これは明らかにLinuxの正しいパスではありません。
[DEBUG] -d /var/lib/jenkins/workspace/fsti-pipe/target/classes -classpath /var/lib/jenkins/workspace/fsti-pipe/target/classes:/var/lib /jenkins/workspace/fsti-pipe/D:\Program Files\apache-maven\repo/com/fsti/agile/fsti-agile/1.1.1/fsti-agile-1.1.1.jar:
...
この時点で、mavenのsetting.xmlのlocalRepositoryの設定パスが正しくなく、上記の問題を引き起こしていることが確認できます。ざっと見たところ、このような感じです。
3 問題の解決
mavenのsetting.xmlのlocalRepositoryを正しい設定パスに変更しましょう! このパスは、Linuxで読み取り/書き込みのパーミッションが必要であることを忘れないでください O(∩_∩)O~.
関連
-
Maven NoClassDefFoundError: org/codehaus/plexus/classworlds/launcher/Launcher
-
ダウンロードしたフォントのデコードに失敗する 問題が解決した
-
Mavenの解決方法 アーティファクト記述子の読み込みに失敗しました
-
xxx:jarのアーティファクトディスクリプタの読み込みに失敗しました。
-
Mavenがエラーを報告します。解決不能な親POM: 見つかりません。
-
Maven Web エラー: org.apache.jasper.JasperException: JSP 用のクラスがコンパイルできません
-
Mavenパッケージングエラー:パッケージorg.junitが存在しない
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
ハートビート・エフェクトのためのHTML+CSS
-
HTML ホテル フォームによるフィルタリング
-
HTML+cssのボックスモデル例(円、半円など)「border-radius」使いやすい
-
HTMLテーブルのテーブル分割とマージ(colspan, rowspan)
-
ランダム・ネームドロッパーを実装するためのhtmlサンプルコード
-
Html階層型ボックスシャドウ効果サンプルコード
-
QQの一時的なダイアログボックスをポップアップし、友人を追加せずにオンラインで話す効果を達成する方法
-
sublime / vscodeショートカットHTMLコード生成の実装
-
HTMLページを縮小した後にスクロールバーを表示するサンプルコード
-
html のリストボックス、テキストフィールド、ファイルフィールドのコード例