found this nice NSIS plugin which doesn't require local NSIS installation
allowing to implement similar function as in old Ant build
using the existing build.nsi
- task distWinInstaller
- resulting *.exe in build/distributions
- in case it's really used separately
with that most Ant build targets are available native in Gradle build (imho all targets we really need - see list of legacy Ant targets)
- "readBuildProperties" = see no use
- "init" = not needed (ant internal prop initialization)
- "javadoc" = gradle-task javadoc
- "compile-core" = gradle-task build
- "compile-htroot" = gradle-task compileHtrootServlets
- "compile" = gradle-task build
- "all" = gradle-task build
- "copyMain4Dist" = gradle-task packageDist
- "compileTest" = gradle-task compileTestJava (std)
- "test" = gradle-task test (std)
- "dist" = gradle-task packageDist
- "portalsearch" = gradle-task packagePortalsearch (is that file still used?)
- "clean" = gradle-task clean (std)
- "run" = gradle-task run (std) or shell
- "run-single" = not needed (old stuff)
- "debug" = won't gradleize ide or run
- "stop" = just a shell script
- "create-doc" = gradle-task javadoc
- "distWinInstaller" = won't impl. external tool needed
- "distMacApp" = won't impl. external tool needed
- "deleteData" = hm, won't impl. use nomale system
- Gradle task to execute "packageDist"
- this will create *.tar.gz and *.zip archive
- with legacy file name convention
- archive is created in build/distributions
- for the libbuild J7Zip-modified.jar use fallback as file dependency in lib
as Gradle/Groovy use internal just the classes from subprojects with result
that in above no jar is included in lib but a bunch of *.class files
- added also the option to publish J7Zip-modified.jar to mavenLocal() repo.
- with currently used version
- updated support/subproject J7Zip-modified (in libbuild) to be compilable via Gradle
- added dependency reference as sub-project
- skip the before applied copy of jars to lib directory (no benefit)
- new support library GitComInf to generate a property file for use in Gradle
- adjusted build.gradle to make use of it to create the yacyBuildProperties.java
- including additon of properties ext.filterTokens as store for Gradle
- added gradle-compile-htroot (w/o depends) to old build.xml as target until complete migration
as it is imho important
imho: much to complicated to get a running number - should be supplied by repo or simplified
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)
instead of loading the solr document, an index only for the last loading
time was created. This prevents that solr has to fetch from its index
while the index is created. Excessive re-loading of documents while
indexing has shown to produce deadlocks, so this should now be
prevented.
This is almost working with many workarounds:
- run rm lib/yacycore.jar
- run ./gradlew clean build bundleNative
- run ant clean all
- run again rm lib/yacycore.jar
- run ./fixMacBuild.sh
The build is then inside build/mac/YaCy.app
Right now this works so far but it does not have the correct release
number inside.
Target is to make this working for Windows releases and to embedd jre
entirely.