Váš košík je aktuálně prázdný!
Nepříjemný bug v Mavenu
Na projektu používáme pro build nástroj Maven ve verzi 2.0.9. Jedná se o perfektní nástroj do doby, kdy pracuje tak, jak má. Ve chvíli, kdy se začne chovat „tak nějak divně“ se chyby hledají docela těžko.
Co se vlastně stalo? Začalo to tím, že testy začaly vyhazovat následující výjimky:
org.apache.commons.dbcp.SQLNestedException: Cannot create JDBC driver of class 'oracle.jdbc.driver.OracleDriver' for connect URL 'http://maven.apache.org'
at org.apache.commons.dbcp.BasicDataSource.createDataSource(BasicDataSource.java:1150)
at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:880)
at org.hibernate.ejb.connection.InjectedDataSourceConnectionProvider.getConnection(InjectedDataSourceConnectionProvider.java:46)
at org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:446)
To nejdivnější bylo to, že se aplikace snažila připojovat na URL: ‚http://maven.apache.org‘ místo toho, aby se připojovala na URL, která byla v konfiguraci.
Dalším pátráním jsem zjistil, že se v „targetu“, tedy místě, kam se ukládají zkompilované zdrojáky, vyskytuje soubor, definující springový kontext, a v něm se vyskytovalo následující (v property url):
Jak se tam to mohlo dostat, když ve zdrojáku je něco úplně jiného:
Začali jsme tedy pátrat, jak se tam mohl tento řetězec dostat, a měla to na svědomí tahle konstelace:
V POMu projektu byla definováno něco takového:
4.0.0
cz.csas.clf
clf-micros-product-configurator
war
${version.micros}
clf-micros-product-configurator
http://maven.apache.org
...
...
src/main/resources
true
...
Co je na předchozím POMu zajímavých několik věcí. Je nastaveno filtrování resourců pro adresář, kde je uložen soubor s konfigurací a v projektu byl definován parametr url.
Díky chybě v mavenu došlo k nahrazení placeholderu ${jdbc.url} za property url, která navíc nebyla property 🙂
Naštěstí pomohl upgrade na nejnovější verzi mevenu (2.2.1), kde se chyba už nevyskytla. Zvláštní je, že jsem v žádných release notes nebo něčem podobným nenašel o tomto problému žádnou zmínku.
Categories:
Comments
Jeden komentář: „Nepříjemný bug v Mavenu“
Take jsme se s tim setkali a vyresili to upgradem na 2.2.1. Nastesti upgrade probehl bez problemu 🙂
Leave a Reply