Hi Shai,

 

there is no way to do this with ant (detecting code change). The ant script 
*always* builds the jar file. In this case, it is just missing the dependency 
to jar-core in test-contrib. Alternatively, test-contrib should not use the jar 
file at all and simply add build/classes/java to classpath.

 

The fix is simple, can do that tomorrow.

 

-----

Uwe Schindler

H.-H.-Meier-Allee 63, D-28213 Bremen

http://www.thetaphi.de <http://www.thetaphi.de/> 

eMail: u...@thetaphi.de

 

From: Shai Erera [mailto:ser...@gmail.com] 
Sent: Thursday, March 18, 2010 10:34 PM
To: java-dev@lucene.apache.org
Subject: Contrib tests fail if core jar is not up to date

 

Hi

I've noticed that sometimes, after I run test-core and test-contrib, and then 
change core code, test-contrib fail on NoSuchMethodError and stuff like that. 
I've noticed that core.jar exists under build, and I assumed it's used by 
test-contrib, and probably is not recreated after core code has changed.

I verified it when looking in contrib-build.xml, which defines a property 
lucene.jar.present which is set to true if the jar is ... well, present. Which 
I believe is the reason for these failures. I've been thinking how to resolve 
that, and I can think of two ways:

(1) have test-core always delete that file, but that has two issues:
(1.1) It's redundant if the code hasn't changed.
(1.2) It forces you to either jar-core or test-core before you test-contrib, if 
you want to make sure you run w/ the latest jar.

or

(2) have test-contrib always call jar-core, which will first delete the file 
and then re-create it by compiling first. Compiling should not do anything if 
the code hasn't changed. So the only waste would be to create the .jar, but I 
think that's quite fast?

Does anyone, with more Ant skills than me, know of a better way to detect from 
test-contrib that core code has changed and only then rebuild the jar?

Shai

Reply via email to