都内SEのプログラミング勉強と雑記

2008年より都内でSEをしてます。業務システムをリプレイスし続けてきました。ここでは主にjavaやその周辺技術関連を紹介予定。学ぶことリスト:https://docs.google.com/spreadsheets/d/1G4lUqbHxsMf4PGgeRVe1ZL3JTOjlSTrqsJYe1CKz9UY/edit?usp=sharing

eclipseのデバックモードでブレークポイントがずれる、というかjar経由で参照しているクラスファイルを見ていた

こんなMavenプロジェクトで構成されてます。
すべて同一のeclipseワークスペースにプロジェクトを開いています。

  • oreore-framework
  • ikeike-gamen
  • sugoize-gamen

このときikeike-gamenとsugoize-gamenをeclipse-LibertyのAPサーバに乗せてデバックしていました。
いずれのWebアプリケーションもoreore-frameworkをjar経由(pomで指定)で利用しています。
その際のバージョンはこんな感じ。
つまりWebアプリケーションによって別バージョンを見ていました。

- ikeike-gamen
        <dependency>
            <groupId>jp.co.oreore</groupId>
            <artifactId>oreore-fw</artifactId>
            <version>0.0.1</version>
        </dependency>
- sugoize-gamen
        <dependency>
            <groupId>jp.co.oreore</groupId>
            <artifactId>oreore-fw</artifactId>
            <version>1.0.0</version>
        </dependency>

さらに開いているoreore-frameworkプロジェクトのバージョンは 0.0.1 でした。
このoreore-framework上のソースにブレークポイントを貼って
ikeike-gamenでテストすると、
通常はブレークポイントを貼ったXXX.javaファイルが開かれるのですが
XXX.classが展開されるではありませんか。
当然ブレークポイント行以外でとまります。

なんでだろうな〜、むずかしいな〜、と思っていましたが、
sugoize-gamenがjar経由で参照している同名のXXX.classが反応していました。

起動しっぱなしのLibertyにあとからWebアプリケーションだけデプロイ・アンデプロイを繰り返していたから?

結局sugoize-gamenはアンデプロイすることで
期待した行でブレークするようになりました。

むずかしいな〜。

follow us in feedly