I'm about to make changes to the ant build that require to also be
done to the gradle build. However there is no active developer for
gradle in the YaCy project right now.
The motivation to introduce gradle was primarily to manage dependencies
and not commit them to git anymore. This has been solved by using
ivy.
Additionally, there were (to my understanding) still open tasks to
be completed for the gradle migration, e.g. the Windows build.
I came to YaCy with the intention of packaging it for Debian. It
is currently not feasible use gradle in Debian:
"If you have a choice, we recommend to use a different build system
like Ant or Maven which are better supported in Debian and are more
stable when it comes to Debian Java packaging."
-- https://wiki.debian.org/Java/Packaging/Gradle
It seems Fedora has completely given up on packaging gradle. The
last activity seems to be from 2017:
https://bugzilla.redhat.com/show_bug.cgi?id=1191535
This commit also shows how many files are necessary for gradle while
ant just needs build.xml and ivy.xml. It is also ironic that gradle
was introduced here to get rid of binary files in Git (jars) but
apparently gradle itself needs jar files in the repo to work.
.settings is created locally by Eclipse upon import as gradle project to store Eclipse specific defaults.
No need to include in distribution.
Also
- .project and
- .classpath
are Eclipse specific and created by gradle and should be deleted (as not needed and IDE specific)
- left them for now as files might be needed for building project with Ant (build.xml) which is likely still used by some.
to be able to use/reuse Ant targets where task has not been implemented in Gradle build.
- use the import to include the compile of htroot as first important task
! it is possible that first build fails an compile of GitRevTask.jar !
! solution/workaround -> use "ant all" once to compile GitRevTask.jar !
- adjusted build.xml a little
- split compile-core into compile-core and compile-htroot to have a target for htroot comp. only
- set build-path to reuse Gradles build directory
- (fix javadoc failure)
- changed the filtered-copy of yacyBuildProperties.java to ! the build path :-(
as current (copy,delete,exclude) is complicated and not migration worthy,
used simple/straigt forward approach (using a yacyBuildProperties.java.template file as copy source)
all unique links! This made it necessary, that a large portion of the
parser and link processing classes must be adopted to carry a different
type of link collection which carry a property attribute which are
attached to web anchors.
- introduction of a new URL class, AnchorURL
- the other url classes, DigestURI and MultiProtocolURI had been renamed
and refactored to fit into a new document package schema, document.id
- cleanup of net.yacy.cora.document package and refactoring
imported project from eclipse, now netbeans will automatically recognize
project folder, link needed libraries, build scripts etc. Just do Open project...
Signed-off-by: Marek Otahal <markotahal@gmail.com>