Thank you, Uwe.
On Fri, 31 Dec 2021, Uwe Schindler wrote:
> As a Gradle project you can depend on Lucene artifacts and use Gradle Apis
> in your build files.
Until 8.x, PyLucene is built via a Makefile that:
- calls Ant to build Lucene, building a bunch of jars individually
- calls Ant to build Lucene extensions (Java classes extending some Lucene
classes with native methods that are then implemented in Python)
- calls JCC to generate and compile C++/Python PyLucene
Now, with the Lucene Gradle build, the Makefile:
- inserts the Lucene extension classes into Lucene's Gradle build via a
new subproject called 'extensions'
- calls Gradle to build all Lucene jars and the extra extensions.jar in
one command: ./gradlew jar
- calls JCC to generate and compile C++/Python PyLucene
But the antlr, asm, asm-commons and hppc jar files are no longer available.
They were made available via Ivy before, in the old Lucene ant build.
As you suggested, fishing around ~/.gradle, I can find them all in there but
that seems very brittle as there are multiple versions present there.
If at all possible, I'd like to not create a Maven project (PyLucene is not
a Java project), mess with pom.xml files or create a new Gradle project for
PyLucene.
But maybe I should actually create a new Gradle project for PyLucene that
replaces its Makefile ? Or is there an easy way for me to request from the
Lucene Gradle build that these external jar files be put somewhere more
accessible ? Uwe, you say that they are present in the Luke .tgz ? What is
the task that produces the Luke .tgz ? I might just be able to fish the .jar
files out of it then. I tried assembleBinaryTgz but that only makes the
Lucene one and assembleRelease fails for me on checkWorkingCopyClean since I
have a bunch of changes not ready to be checked in...
Thank you for your insights !
Andi..
> If you have the state of your work (do you use Gradle to build already?)
> we may be able to help you. You may need to write a Gradle task that calls
> your compiler. See ECJ (calls Java) or Changes2html (calls python) tasks
> as examples.
>
> BTW, the jar files are hidden in the Gradle cache folder somewhere in your
> home dir. Bit to access them you need Gradle Apis.
>
> Uwe
>
> Am 31. Dezember 2021 18:24:47 UTC schrieb Uwe Schindler <uwe@thetaphi.de>:
>> Hi,
>>
>> The Lucene 9.0 binary tgz no longer contains 3rd party dependencies, unless they are needed to run Luke.
>>
>> Generally we expect people to parse the pom.xml files and download artifacts as part of a downstream build. If you are able to use Maven, I'd recommend to create a small Maven Java Project listing the Lucene dependencies and ask it to make a complete distribution.
>>
>> If you have the source distribution, I'd recommend to make pylucene also use Gradle to build and then you can consume dependencies.
>>
>> Uwe
>>
>> Am 31. Dezember 2021 18:12:55 UTC schrieb Andi Vajda <osaf@ovaltofu.org>:
>>>
>>> Hi,
>>>
>>> I've begun adapting PyLucene to Lucene 9.0 and switching it to using gradle.
>>>
>>> The expressions sub-project depends on antlr4 and asm and I'm able to build
>>> all of Lucene 9.0 without explicitely downloading these jar files.
>>>
>>> The PyLucene build needs these jar files then to produce wrappers for the
>>> entrypoints into the expressions sub-project classes.
>>>
>>> Where are these jar files stored ?
>>> $ find lucene-java-9.0.0 -name '*.jar' | grep antlr
>>> produces nothing.
>>>
>>> Thanks !
>>>
>>> Andi..
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
>>> For additional commands, e-mail: dev-help@lucene.apache.org
>>>
>>
>> --
>> Uwe Schindler
>> Achterdiek 19, 28357 Bremen
>> https://www.thetaphi.de
> --
> Uwe Schindler
> Achterdiek 19, 28357 Bremen
> https://www.thetaphi.de
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@lucene.apache.org
For additional commands, e-mail: dev-help@lucene.apache.org