当社ではしばらくの間liquibaseを使用しており、パッチにエラーが発生した場合にジョブを中断するデータベース移行のために継続的インテグレーション環境をセットアップしてきました。
そのCI環境の興味深い「機能」は、すべてのパッチに「作成者」が必要であり、エラーメッセージに作成者名が表示されるため、破損の原因が「原因である可能性が高い」ことです。
liquibaseが何であるかわからない場合、それは大丈夫です、それは重要ではありません。
重要なのは、エラーに人名を付けることは、ソフトウェア開発プロセスにとって非常に良いことです。問題ははるかに迅速に解決されます。
だから私は考えていました:それはJavaスタックトレースで可能ですか?
以下のような行番号とともに、人々の名前を含むスタックトレースを作成できますか?
java.lang.NullPointerException
at org.hibernate.tuple.AbstractEntityTuplizer.createProxy(AbstractEntityTuplizer.java:372:john)
at org.hibernate.persister.entity.AbstractEntityPersister.createProxy(AbstractEntityPersister.java:3121:mike)
at org.hibernate.event.def.DefaultLoadEventListener.createProxyIfNecessary(DefaultLoadEventListener.java:232:bob)
at org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:173:bob)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:87:bob)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:862:john)
この種の情報は、SCMシステムから引き出す必要があります(ソースファイルごとに「svnblame」を実行するなど)。
さて、コンパイル時間を1分間無駄にすることを忘れてください。それも可能でしょうか?そのようなクラスファイルにメタデータを追加するには?