我們在我們公司已經使用了liquibase一段時間,並且我們已經建立了一個持續集成環境,用於數據庫遷移,當補丁發生錯誤時會破壞工作。是否可以將自定義元數據添加到.class文件?
是CI環境的一個有趣的「功能」是破壞了「有可能是罪魁禍首」,因爲所有的補丁需要一個「作家」,並且錯誤信息顯示作者姓名。
如果你不知道liquibase是什麼,沒關係,它不是重點。
的一點是:具有連接到錯誤人名字纔是真的好軟件開發proccess:問題得到解決的方式更快。
所以我在想:Java stacktraces可能嗎?
我們可不可以用了類似下面的行號以及人民的名字堆棧跟蹤?
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系統中取出(如對每個源文件執行「svn blame」)。
現在,忘記搗毀一分鐘的編譯時間:這將甚至可能嗎? 要向類文件添加元數據?
你爲什麼要把它放在類文件中?在外部系統中使用它可能會是一個更好的主意? – Suman
我懷疑痕跡是相關的,拋出NullPointerException的行很少是對錯誤負責的行(並且作者當然不是應該責怪的行)。發生錯誤的原因是由代碼處理的數據沒有正確處理,並且當它吹得太晚(並且離代碼中應該修復的地方太遠)。 –