Changeset 35661 for main/trunk/greenstone3/gs3-setup.sh
- Timestamp:
- 2021-10-21T18:58:59+13:00 (3 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
main/trunk/greenstone3/gs3-setup.sh
r35418 r35661 573 573 # Ant 574 574 echo "Checking for Ant" 575 #Note: No longer need to print out info about minimum version of Ant needed 576 # for Greenstone3 (v1.7.1 at the time of writing this comment!), as this is 577 # now explicitly tested for in the build.xml file, and an error message generated 578 # if not new enough 575 576 # Note 1: No longer need to print out info about minimum version of 577 # Ant needed for Greenstone3 (v1.8.2 at the time of updating this 578 # comment!), as this is now explicitly tested for in the build.xml 579 # file, and an error message generated if not new enough 580 581 # Note 2: The setting of ANT_ARGS to '-noclasspath' flag below is to 582 # void "cross-contamination' between this setup file -- which sets 583 # CLASSPATH to include all the jars in <gsdl3srchome>web/WEB-INF, 584 # including an ant.jar -- and what is needed to cleanly run the 585 # 'ant' script and have it find the matching 'ant.jar' that goes 586 # with it (i.e. is the same version). For example we want the 587 # system installed /usr/bin/ant to find /usr/share/ant/lib/ant.jar 588 # 589 # Undesirable behaviour can occur, however, when the 'ant' that is 590 # run is the one found on PATH, and a different ant.jar is found (as 591 # can occur when CLASSPATH is set). For this pattern of running the 592 # 'ant' script the 'ant.jar' that is in Greenstone's web/WEB-INF 593 # area is found. This Greenstone ant.jar file (at the time of 594 # writing) is for ant v.1.8.2, and causes some of the Java 595 # properities ant uses to changed. Even if your installed 'ant' is 596 # (say v1.10.9) and the JDK you are running is JDK11, as a 597 # consequence of finding the older ant.jar file, ant.version is set 598 # to 1.8.2 and ant.java.version to 1.7. As a consequence of this, 599 # the Greenstone3 build.xml fails to run as its minimum Java version 600 # needs to be >=1.8 601 # 602 # In looking at how to address this issue, updating the version of ant.jar 603 # was considered. However, taking this approach means there will aways be 604 # a risk of a version mismatch between a system installed 'ant' and 605 # the version of ant.jar Greenstone includes. 606 # 607 # The approach taken here, then, is to more carefully control the 608 # launching of ant. By setting ANT_ARGS to -noclasspath, the 'ant' 609 # script is directed not to use CLASSPATH, thereby avoidig the 610 # cross-contamination problem. 611 # 612 # Of further note, in the event ANT_HONE is set, then the situation 613 # we are in is much simpler, as the cross-contamination problem 614 # doesn't arise. This is because the 'ant' script explicitly sets 615 # ANT_LIB, based on ANT_HOME, to explicitly pick out ant.jar file 616 # that goes along with the script. 617 # 579 618 580 619 if [ -x "$GSDL3SRCHOME/packages/ant/bin/ant" ] ; then … … 587 626 addtopath PATH "$ANT_HOME/bin" 588 627 echo " - `ant -version`" 589 else 590 which ant &> /dev/null 628 else 629 # which ant &> /dev/null 630 # Posix friendly way to determine if a program exists: 631 # https://stackoverflow.com/questions/592620/how-can-i-check-if-a-program-exists-from-a-bash-script 632 command -v ant &> /dev/null 633 591 634 if [ "$?" = "0" ] ; then 592 635 echo " - System install ant detected" 636 637 if [ "x$ANT_ARGS" = "x" ] ; then 638 ANT_ARGS="-noclasspath" 639 else 640 ANT_ARGS="-noclasspath $ANT_ARGS" 641 fi 642 export ANT_ARGS 643 593 644 echo " - `ant -version`" 645 594 646 else 595 647 echo " - WARNING: Failed to find 'ant'"
Note:
See TracChangeset
for help on using the changeset viewer.