rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 1 | source lib-maven-deploy.sh |
| 2 | |
| 3 | function finishAndCleanup () { |
| 4 | if [[ $thereHaveBeenErrors ]]; then |
| 5 | echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" |
| 6 | echo "WARNING: Errors while deploying files, examine output above." |
| 7 | echo "Leaving intermediate files at:" |
| 8 | echo "$RANDOM_DIR" |
Thomas Broyer | faaaf63 | 2015-11-19 14:36:56 +0100 | [diff] [blame] | 9 | find $pomDir -name pom.xml -o -name pom.xml.asc |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 10 | echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!" |
| 11 | else |
| 12 | # Clean up |
| 13 | rm -rf $RANDOM_DIR |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 14 | # Remove POMs & ASCs, leaving only templates |
Thomas Broyer | 2c8f839 | 2015-12-01 12:55:48 +0100 | [diff] [blame] | 15 | find $pomDir -name pom.xml -o -name pom.xml.asc -delete |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 16 | fi |
| 17 | |
| 18 | } |
| 19 | |
| 20 | function die () { |
| 21 | thereHaveBeenErrors=1 |
| 22 | if [[ "$continueOnErrors" != "y" ]]; then |
Manuel Carrasco MoƱino | 3d8aa6e | 2014-10-11 10:28:51 +0200 | [diff] [blame] | 23 | read -e -p"Error while deploying, ignore errors? (y/N): " continueOnErrors |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 24 | if [[ "$continueOnErrors" != "y" ]]; then |
| 25 | finishAndCleanup |
| 26 | exit 1 |
| 27 | fi |
| 28 | fi |
| 29 | } |
| 30 | |
| 31 | function warnJavaDoc () { |
| 32 | echo "WARNING: Could not deploy JavaDoc for $1. Continuing" |
| 33 | } |
| 34 | |
| 35 | # Appends to COMMIT_MESSAGE |
| 36 | function maven-gwt() { |
| 37 | local gwtMavenVersion=$1 |
| 38 | shift |
Thomas Broyer | 2c8f839 | 2015-12-01 12:55:48 +0100 | [diff] [blame] | 39 | local jsinteropMavenVersion=$1 |
| 40 | shift |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 41 | local gwtSdkArchive=$1 |
| 42 | shift |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 43 | local mavenRepoUrl=$1 |
| 44 | shift |
| 45 | local mavenRepoId=$1 |
| 46 | shift |
| 47 | |
| 48 | if [[ "$mavenRepoUrl" == "" ]]; then |
| 49 | echo "ERROR: Incorrect parameters to maven-gwt" |
| 50 | exit 1 |
| 51 | fi |
| 52 | |
| 53 | if [[ "$mavenRepoId" == "" ]]; then |
| 54 | if [[ "`expr match $mavenRepoUrl "file://"`" == 0 ]]; then |
| 55 | echo "ERROR: maven-gwt: mavenRepoId is not specified, and the mavenRepoUrl is not local (does not start with file://)" |
| 56 | exit 1 |
| 57 | fi |
| 58 | # set a dummy repo id |
| 59 | mavenRepoId=local |
| 60 | fi |
| 61 | |
| 62 | set-random-dir |
| 63 | echo "Unzipping $gwtSdkArchive to $RANDOM_DIR" |
| 64 | unzip -q $gwtSdkArchive -d $RANDOM_DIR || exit 1 |
| 65 | |
| 66 | GWT_EXTRACT_DIR=`ls $RANDOM_DIR | tail -n1` |
| 67 | GWT_EXTRACT_DIR=$RANDOM_DIR/$GWT_EXTRACT_DIR |
| 68 | |
| 69 | JAVADOC_FILE_PATH=$RANDOM_DIR/gwt-javadoc.jar |
| 70 | jar cf $JAVADOC_FILE_PATH -C $GWT_EXTRACT_DIR/doc/javadoc . |
Thomas Broyer | b235e41 | 2014-10-21 10:56:18 +0200 | [diff] [blame] | 71 | |
Thomas Broyer | 2c8f839 | 2015-12-01 12:55:48 +0100 | [diff] [blame] | 72 | # Create a dummy javadoc JAR for JsInterop (gwt-javadoc is too heavy) |
| 73 | JSINTEROP_JAVADOC_FILE_PATH=$RANDOM_DIR/jsinterop-javadoc.jar |
| 74 | jar cf $JSINTEROP_JAVADOC_FILE_PATH -C $pomDir/jsinterop README.javadoc |
| 75 | |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 76 | # Generate POMs with correct version |
| 77 | for template in `find $pomDir -name pom-template.xml` |
| 78 | do |
| 79 | dir=`dirname $template` |
| 80 | pushd $dir > /dev/null |
Thomas Broyer | 2c8f839 | 2015-12-01 12:55:48 +0100 | [diff] [blame] | 81 | sed -e "s|\${gwtVersion}|$gwtMavenVersion|g" -e "s|\${jsinteropVersion}|$jsinteropMavenVersion|g" pom-template.xml >pom.xml |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 82 | popd > /dev/null |
| 83 | done |
| 84 | |
Thomas Broyer | a5f3c01 | 2016-07-02 01:20:33 +0200 | [diff] [blame] | 85 | # Silently skip Elemental if it doesn't exist |
| 86 | gwtLibs='dev user servlet codeserver' |
| 87 | if [ -f $GWT_EXTRACT_DIR/gwt-elemental.jar ]; then |
| 88 | gwtLibs="${gwtLibs} elemental" |
| 89 | fi |
| 90 | |
| 91 | jsinteropLibs='annotations' |
| 92 | |
| 93 | # Create jsinterop libs |
| 94 | for i in $jsinteropLibs |
| 95 | do |
| 96 | echo "Creating jsinterop-${i}.jar and jsinterop-${i}-sources.jar" |
| 97 | zip $GWT_EXTRACT_DIR/gwt-user.jar --copy --out $GWT_EXTRACT_DIR/jsinterop-${i}.jar \ |
| 98 | "jsinterop/${i}/*" |
| 99 | zip -d $GWT_EXTRACT_DIR/jsinterop-${i}.jar \ |
| 100 | "jsinterop/${i}/*.java" "jsinterop/${i}/*.gwt.xml" |
| 101 | zip $GWT_EXTRACT_DIR/gwt-user.jar --copy --out $GWT_EXTRACT_DIR/jsinterop-${i}-sources.jar \ |
| 102 | "jsinterop/${i}/*.java" "jsinterop/${i}/*.gwt.xml" |
| 103 | echo "Removing jsinterop/${i} from gwt-user" |
| 104 | zip -d $GWT_EXTRACT_DIR/gwt-user.jar "jsinterop/${i}/*" |
| 105 | echo "Removing jsinterop/${i} from gwt-servlet" |
| 106 | zip -d $GWT_EXTRACT_DIR/gwt-servlet.jar "jsinterop/${i}/*" |
| 107 | done |
| 108 | |
Thomas Broyer | 9a076fe | 2016-07-11 10:55:50 +0200 | [diff] [blame] | 109 | echo "Removing bundled third-parties from gwt-dev" |
| 110 | zip -q $GWT_EXTRACT_DIR/gwt-dev.jar --copy --out $GWT_EXTRACT_DIR/gwt-dev-trimmed.jar \ |
| 111 | "com/google/gwt/*" "org/eclipse/jdt/*" |
| 112 | mv $GWT_EXTRACT_DIR/gwt-dev-trimmed.jar $GWT_EXTRACT_DIR/gwt-dev.jar |
| 113 | echo "Removing bundled third-parties from gwt-user" |
| 114 | zip -q $GWT_EXTRACT_DIR/gwt-user.jar --copy --out $GWT_EXTRACT_DIR/gwt-user-trimmed.jar \ |
| 115 | "com/google/gwt/*" "com/google/web/bindery/*" "javaemul/*" \ |
| 116 | "javax/validation/*" "org/hibernate/validator/*" \ |
| 117 | "org/w3c/flute/*" |
| 118 | mv $GWT_EXTRACT_DIR/gwt-user-trimmed.jar $GWT_EXTRACT_DIR/gwt-user.jar |
skybrian@google.com | 213a4d9 | 2012-06-14 18:58:38 +0000 | [diff] [blame] | 119 | |
skybrian@google.com | daebbcb | 2012-06-15 16:42:27 +0000 | [diff] [blame] | 120 | for i in $gwtLibs |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 121 | do |
| 122 | CUR_FILE=`ls $GWT_EXTRACT_DIR/gwt-${i}.jar` |
Thomas Broyer | b235e41 | 2014-10-21 10:56:18 +0200 | [diff] [blame] | 123 | |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 124 | # Get rid of the INDEX.LIST file, since it's going to be out of date |
| 125 | # once we rename the jar files for Maven |
Thomas Broyer | a363635 | 2016-07-12 12:43:12 +0200 | [diff] [blame^] | 126 | if unzip -l $CUR_FILE META-INF/INDEX.LIST >/dev/null; then |
Thomas Broyer | 9a076fe | 2016-07-11 10:55:50 +0200 | [diff] [blame] | 127 | echo "Removing INDEX.LIST from gwt-${i}" |
| 128 | zip -d $CUR_FILE META-INF/INDEX.LIST |
| 129 | fi |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 130 | |
Thomas Broyer | a5f3c01 | 2016-07-02 01:20:33 +0200 | [diff] [blame] | 131 | SOURCES_FILE=$GWT_EXTRACT_DIR/gwt-${i}-sources.jar |
Thomas Broyer | a363635 | 2016-07-12 12:43:12 +0200 | [diff] [blame^] | 132 | if unzip -l $CUR_FILE '*.java' >/dev/null; then |
| 133 | zip -q $CUR_FILE --copy --out $SOURCES_FILE "*.java" |
| 134 | fi |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 135 | done |
Thomas Broyer | b235e41 | 2014-10-21 10:56:18 +0200 | [diff] [blame] | 136 | |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 137 | # push parent poms |
| 138 | maven-deploy-file $mavenRepoUrl $mavenRepoId $pomDir/gwt/pom.xml $pomDir/gwt/pom.xml |
| 139 | |
skybrian@google.com | daebbcb | 2012-06-15 16:42:27 +0000 | [diff] [blame] | 140 | for i in $gwtLibs |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 141 | do |
| 142 | CUR_FILE=`ls $GWT_EXTRACT_DIR/gwt-${i}.jar` |
| 143 | gwtPomFile=$pomDir/gwt/gwt-$i/pom.xml |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 144 | SOURCES_FILE=gwt-${i}-sources.jar |
Thomas Broyer | a5f3c01 | 2016-07-02 01:20:33 +0200 | [diff] [blame] | 145 | SOURCES_PATH_FILE=$GWT_EXTRACT_DIR/$SOURCES_FILE |
Thomas Broyer | b235e41 | 2014-10-21 10:56:18 +0200 | [diff] [blame] | 146 | # If there are no sources, use gwt-user sources. |
| 147 | # This is a bit hacky but Sonatype requires a |
| 148 | # source jar for Central, and lack of sources |
| 149 | # should only happen for gwt-servlet which is |
| 150 | # basically a subset of gwt-user. |
Colin Alworth | d138227 | 2013-10-14 23:10:53 -0500 | [diff] [blame] | 151 | if [ ! -f $SOURCES_PATH_FILE ]; then |
Thomas Broyer | a5f3c01 | 2016-07-02 01:20:33 +0200 | [diff] [blame] | 152 | SOURCES_PATH_FILE=$GWT_EXTRACT_DIR/gwt-user-sources.jar |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 153 | fi |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 154 | |
Colin Alworth | d138227 | 2013-10-14 23:10:53 -0500 | [diff] [blame] | 155 | maven-deploy-file $mavenRepoUrl $mavenRepoId "$CUR_FILE" $gwtPomFile "$JAVADOC_FILE_PATH" "$SOURCES_PATH_FILE" || die |
| 156 | done |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 157 | |
| 158 | # Deploy RequestFactory jars |
| 159 | maven-deploy-file $mavenRepoUrl $mavenRepoId $pomDir/requestfactory/pom.xml $pomDir/requestfactory/pom.xml || die |
| 160 | |
| 161 | for i in client server apt |
| 162 | do |
Colin Alworth | d138227 | 2013-10-14 23:10:53 -0500 | [diff] [blame] | 163 | maven-deploy-file $mavenRepoUrl $mavenRepoId $GWT_EXTRACT_DIR/requestfactory-${i}.jar $pomDir/requestfactory/${i}/pom.xml \ |
| 164 | $JAVADOC_FILE_PATH $GWT_EXTRACT_DIR/requestfactory-${i}-src.jar \ |
| 165 | || die |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 166 | done |
| 167 | |
Thomas Broyer | 2c8f839 | 2015-12-01 12:55:48 +0100 | [diff] [blame] | 168 | # Deploy jsInterop jars |
| 169 | maven-deploy-file $mavenRepoUrl $mavenRepoId $pomDir/jsinterop/pom.xml $pomDir/jsinterop/pom.xml || die |
| 170 | |
| 171 | for i in $jsinteropLibs |
| 172 | do |
Thomas Broyer | a5f3c01 | 2016-07-02 01:20:33 +0200 | [diff] [blame] | 173 | maven-deploy-file $mavenRepoUrl $mavenRepoId $GWT_EXTRACT_DIR/jsinterop-${i}.jar $pomDir/jsinterop/${i}/pom.xml \ |
| 174 | $JSINTEROP_JAVADOC_FILE_PATH $GWT_EXTRACT_DIR/jsinterop-${i}-sources.jar \ |
Thomas Broyer | 2c8f839 | 2015-12-01 12:55:48 +0100 | [diff] [blame] | 175 | || die |
| 176 | done |
| 177 | |
rchandia@google.com | 96dc36b | 2011-09-09 17:31:05 +0000 | [diff] [blame] | 178 | finishAndCleanup |
| 179 | } |