diff options
author | Artur Signell <artur@vaadin.com> | 2012-09-05 15:05:37 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2012-09-09 11:23:26 +0300 |
commit | 7551d2920f7e321ccfd5e42d764a99e63b597929 (patch) | |
tree | 8d426c96af00a51bbf00a927b6bba60342b60e21 | |
parent | 41d9c4569ddb345d3f99fb66874caca7df93cdde (diff) | |
download | vaadin-framework-7551d2920f7e321ccfd5e42d764a99e63b597929.tar.gz vaadin-framework-7551d2920f7e321ccfd5e42d764a99e63b597929.zip |
Snapshot deployment to Maven now works (#9299)
-rw-r--r-- | client-compiler/ivy.xml | 9 | ||||
-rw-r--r-- | common.xml | 34 | ||||
-rw-r--r--[-rwxr-xr-x] | gwt-files.xml | 0 | ||||
-rw-r--r-- | ivysettings-publish.xml | 7 | ||||
-rw-r--r-- | publish.xml | 96 | ||||
-rw-r--r-- | theme-compiler/ivy.xml | 10 |
6 files changed, 68 insertions, 88 deletions
diff --git a/client-compiler/ivy.xml b/client-compiler/ivy.xml index d824f503b2..eadf68e1c3 100644 --- a/client-compiler/ivy.xml +++ b/client-compiler/ivy.xml @@ -20,11 +20,14 @@ </publications> <dependencies> <dependency org="com.vaadin" name="vaadin-shared" - rev="${vaadin.version}"></dependency> + rev="${vaadin.version}" conf="build" /> <dependency org="com.vaadin" name="vaadin-server" - rev="${vaadin.version}"></dependency> + rev="${vaadin.version}" conf="build" /> <dependency org="com.vaadin" name="vaadin-client" - rev="${vaadin.version}"></dependency> + rev="${vaadin.version}" conf="build" /> + <dependency org="commons-collections" name="commons-collections" + rev="3.1" conf="build,ide -> default" /> + </dependencies> </ivy-module> diff --git a/common.xml b/common.xml index efaf47d30d..5ea1a1314b 100644 --- a/common.xml +++ b/common.xml @@ -11,10 +11,9 @@ <taskdef resource="org/apache/maven/artifact/ant/antlib.xml" uri="antlib:org.apache.maven.artifact.ant" classpathref="taskdefs.classpath" /> <!-- FIXME These are not available in other files --> - <antcontrib:propertyregex property="vaadin.version.major" input="${version}" regexp="([^\.]*)\.([^\.]*)\.([^\.]*)" select="\1" /> - <antcontrib:propertyregex property="vaadin.version.minor" input="${version}" regexp="([^\.]*)\.([^\.]*)\.([^\.]*)" select="\2" /> - <antcontrib:propertyregex property="vaadin.version.revision" input="${version}" regexp="([^\.]*)\.([^\.]*)\.([^\.]*)" select="\3" /> - + <antcontrib:propertyregex property="vaadin.version.major" input="${vaadin.version}" regexp="([^\.]*)\.([^\.]*)\.([^\.]*)" select="\1" /> + <antcontrib:propertyregex property="vaadin.version.minor" input="${vaadin.version}" regexp="([^\.]*)\.([^\.]*)\.([^\.]*)" select="\2" /> + <antcontrib:propertyregex property="vaadin.version.revision" input="${vaadin.version}" regexp="([^\.]*)\.([^\.]*)\.([^\.]*)" select="\3" /> <ivy:settings file="${vaadin.basedir}/ivysettings.xml" id="ivysettings" /> <union id="empty.reference" /> @@ -30,12 +29,15 @@ </fileset> - <target name="pom.xml" description="Generates a pom.xml based on the Ivy configuration"> + <target name="pom.xml" description="Generates a pom.xml based on the Ivy configuration. Either for a snapshot or a release version" depends="pom.xml.release,pom.xml.snapshot"> + </target> + + <target name="pom.xml.release" if="build.release"> <fail unless="result.dir" message="No result.dir parameter given" /> <property name="ivy.xml" location="${result.dir}/../ivy.xml" /> <property name="pom.xml" location="${result.dir}/lib/${module.name}-${vaadin.version}.pom" /> <property name="conf" value="build, build-provided" /> - <property name="vaadin.maven.version" value="${vaadin.version.major}.${vaadin.version.minor}-SNAPSHOT" /> + <property name="vaadin.maven.version" value="${vaadin.version}" /> <ivy:makepom templatefile="${vaadin.basedir}/pom-template.xml" ivyfile="${ivy.xml}" pomfile="${pom.xml}" conf="${conf}"> <mapping conf="build" scope="compile" /> @@ -43,6 +45,26 @@ </ivy:makepom> </target> + <target name="pom.xml.snapshot" unless="build.release"> + <fail unless="result.dir" message="No result.dir parameter given" /> + <property name="ivy.xml" location="${result.dir}/../ivy.xml" /> + <property name="pom.xml" location="${result.dir}/lib/${module.name}-${vaadin.version}.pom" /> + <property name="temp.pom.xml" location="${pom.xml}.temp" /> + <property name="conf" value="build, build-provided" /> + <property name="vaadin.maven.version" value="${vaadin.version.major}.${vaadin.version.minor}-SNAPSHOT" /> + + <ivy:makepom templatefile="${vaadin.basedir}/pom-template.xml" ivyfile="${ivy.xml}" pomfile="${temp.pom.xml}" conf="${conf}"> + <mapping conf="build" scope="compile" /> + <mapping conf="build-provided" scope="provided" /> + </ivy:makepom> + <copy file="${temp.pom.xml}" tofile="${pom.xml}"> + <filterchain> + <replacestring from="${vaadin.version}" to="${vaadin.maven.version}" /> + </filterchain> + </copy> + <delete file="${temp.pom.xml}" /> + </target> + <target name="sources.jar" depends="compile"> <fail unless="result.dir" message="No result.dir parameter given" /> diff --git a/gwt-files.xml b/gwt-files.xml index 7ec493bff2..7ec493bff2 100755..100644 --- a/gwt-files.xml +++ b/gwt-files.xml diff --git a/ivysettings-publish.xml b/ivysettings-publish.xml index 69856447c0..4f96b16b72 100644 --- a/ivysettings-publish.xml +++ b/ivysettings-publish.xml @@ -5,6 +5,9 @@ <credentials host="oss.sonatype.org" realm="Sonatype Nexus Repository Manager" username="${sonatype.username}" passwd="${sonatype.password}"> </credentials> + <signers> + <pgp name="gpg" password="${gpg.passphrase}" /> + </signers> <resolvers> <!-- user="${publish.sftp.user}" host="${publish.sftp.host}" keyFile="${publish.sftp.keyfile}" keyFilePassword="${publish.sftp.keyfilepassword}" --> @@ -12,7 +15,7 @@ <ivy pattern="${publish.sftp.ivy.pattern}" /> <artifact pattern="${publish.sftp.artifact.pattern}" /> </sftp> - <ibiblio name="sonatype" + <ibiblio name="sonatype" signer="gpg" root="https://oss.sonatype.org/content/repositories/vaadin-snapshots/" m2compatible="true" /> @@ -20,7 +23,7 @@ <ivy pattern="${ivy.settings.dir}/result/artifacts/[revision]/[module]/ivy-[revision].xml" /> <artifact - pattern="${ivy.settings.dir}/result/artifacts/[revision]/[module]/[artifact]-[revision].[ext]" /> + pattern="${ivy.settings.dir}/result/artifacts/[revision]/[module]/[artifact]-[revision](-[classifier]).[ext]" /> </filesystem> </resolvers> diff --git a/publish.xml b/publish.xml index c1b272f6e9..33df019a25 100644 --- a/publish.xml +++ b/publish.xml @@ -2,6 +2,10 @@ <project name="publish" basedir="." default="" xmlns:ivy="antlib:org.apache.ivy.ant" xmlns:antcontrib="antlib:net.sf.antcontrib" xmlns:artifact="antlib:org.apache.maven.artifact.ant"> <include file="common.xml" as="common" /> <include file="build.xml" as="vaadin" /> + + <!-- Dummy value as ivysettings-publish require a value --> + <property name="publish.sftp.keyfile" value="/dummy" /> + <ivy:settings file="ivysettings.xml" /> <ivy:settings file="ivysettings-publish.xml" id="publish.settings" /> <property name="modules.to.publish" value="shared,server,client,client-compiler,client-compiled,theme-compiler,themes-compiled" /> @@ -12,111 +16,59 @@ <fail unless="ant-jsch.present" message="Please install ant-jsch.jar into ANT_HOME/lib" /> <fail unless="jsch.present" message="Please install jsch.jar into ANT_HOME/lib" /> - <!-- <ivy:resolve organisation="com.vaadin" />--> - <!--<property name="local.temp" location="result/publish.temp" />--> - - - <ivy:cachepath inline="true" organisation="com.jcraft" module="jsch" revision="0.1.42" pathid="jsch.path" /> - <ivy:cachepath inline="true" organisation="ant" module="ant-jsch" revision="1.6.5" pathid="jsch.task.path" /> - - <taskdef name="scp" classname="org.apache.tools.ant.taskdefs.optional.ssh.Scp"> - <classpath refid="jsch.path" /> - <classpath refid="jsch.task.path" /> - </taskdef> - - <!-- - <target name="artifacts.to.local.temp"> - <delete dir="${local.temp}" /> - <copy todir="${local.temp}" flatten="true"> - <fileset dir="result/artifacts"> - <include name="**/vaadin-*.jar" /> - <include name="**/*.pom" /> - <exclude name="**/*buildhelper*" /> - </fileset> - </copy> - </target> ---> - <!-- <target name="nightly.publish" depends="nightly.download.publish, nightly.maven.publish"> </target> - --> - <target name="resolve.modules"> - <!-- Find out a good build order --> - <ivy:buildlist reference="project.modules" excluderoot="true"> - <fileset dir="." includes="**/build.xml"> - <exclude name="build/**" /> - </fileset> - </ivy:buildlist> - </target> <!-- Copies the nightly build artifacts to the download server. --> <target name="nightly.tests.publish" if="nightly.tests.publish"> <property name="file.war" location="result/artifacts/${vaadin.version}/vaadin-uitest/vaadin-uitest-${version}.war" /> - - <!-- Publish to the demo server. --> <property name="target" value="${nightly.tests.publish}/${vaadin.version.major}.${vaadin.version.minor}-${build.tag}.war" /> <echo>Installing ${src} to ${target}</echo> - <!-- Copy the linux installation package and the JAR. --> - <exec executable="scp" searchpath="true" resultproperty="nightly.demo.install.scp.result"> - <arg value="-B" /> - <arg value="${src}" /> - <arg value="${target}" /> - </exec> - - <echo>Result: ${nightly.install.scp.result}</echo> - + <scp todir="${nightly.tests.publish}" file="${file.war}"> + </scp> </target> + <target name="nightly.download.publish"> <antcontrib:foreach list="${modules.to.publish}" target="publish.module.to.download.site" param="module" /> </target> + <target name="nightly.maven.publish"> + <antcontrib:foreach list="${modules.to.publish}" target="publish.module.to.maven" param="module" /> + </target> + <target name="publish.module.to.download.site"> + <fail unless="module" message="No module to publish defined" /> <ivy:resolve file="${module}/ivy.xml" /> <ivy:publish publishivy="false" settingsref="publish.settings" conf="*(public)" resolver="sftp-publish"> - <artifacts pattern="${ivy.settings.dir}/result/artifacts/[revision]/[module]/[artifact]-[revision](-[type]).[ext]" /> + <artifacts pattern="${ivy.settings.dir}/result/artifacts/[revision]/[module]/[artifact]-[revision](-[classifier]).[ext]" /> </ivy:publish> </target> - <target name="nightly.maven.publish" if="maven.publish"> - <antcall target="publish.module.to.maven"> - <param name="module" value="shared" /> - </antcall> - </target - > <target name="publish.module.to.maven"> + <fail unless="module" message="No module to publish defined" /> <property file="${gpg.passphrase.file}" /> - <ivy:resolve file="${module}/ivy.xml" /> - <!-- - <ivy:publish publishivy="false" settingsref="publish.settings" conf="*(public)" resolver="sonatype"> - <artifacts pattern="${ivy.settings.dir}/result/artifacts/[revision]/[module]/[artifact]-[revision](-[type]).[ext]" /> + + <!-- Ivy should be able to handle this but this does not work at the moment + <ivy:resolve file="${module}/ivy.xml" /> + <ivy:publish pubrevision="7.0-SNAPSHOT" publishivy="false" settingsref="publish.settings" conf="*(public)" resolver="sonatype"> + <artifacts pattern="${ivy.settings.dir}/result/artifacts/${vaadin.version}/[module]/[artifact]-${vaadin.version}(-[classifier]).[ext]" /> </ivy:publish> --> + <property name="jar.file" location="result/artifacts/${vaadin.version}/vaadin-${module}/vaadin-${module}-${vaadin.version}.jar" /> + <property name="pom.file" location="result/artifacts/${vaadin.version}/vaadin-${module}/vaadin-${module}-${vaadin.version}.pom" /> <artifact:mvn failonerror="true"> <arg value="gpg:sign-and-deploy-file" /> - <arg value="-e" /> - <sysproperty key="file" value="result/artifacts/7.0.0.test1/vaadin-shared/vaadin-shared-7.0.0.test1.jar" /> - <!-- <sysproperty key="file" value="result/artifacts/*/${module}/" />--> - <sysproperty key="pomFile" value="result/artifacts/7.0.0.test1/vaadin-shared/vaadin-shared-7.0.0.test1.pom" /> + <sysproperty key="file" value="${jar.file}" /> + <sysproperty key="pomFile" value="${pom.file}" /> <sysproperty key="repositoryId" value="${maven.snapshot.repository.id}" /> <sysproperty key="url" value="${maven.snapshot.repository.url}" /> <sysproperty key="gpg.passphrase" value="${gpg.passphrase}" /> + <sysproperty key="retryFailedDeploymentCount" value="10" /> </artifact:mvn> - </target> - <!--<target name="nightly.download.publish" if="nightly.publish" depends="artifacts.to.local.temp">--> - <!-- Publish to the download server. --> - <!-- <fileset dir="${local.temp}" id="files.to.publish" /> - <property name="files.string" refid="files.to.publish" /> - <echo>Publishing ${files.string} to ${nightly.publish}</echo> - <scp todir="${nightly.publish}" trust="true" verbose="true"> - <fileset refid="files.to.publish" /> - </scp> - - </target> - --> </project>
\ No newline at end of file diff --git a/theme-compiler/ivy.xml b/theme-compiler/ivy.xml index 873faa7a84..2a0e814c07 100644 --- a/theme-compiler/ivy.xml +++ b/theme-compiler/ivy.xml @@ -10,14 +10,14 @@ <configurations> <conf name="build" /> <conf name="build-provided" /> - <conf name="ide" visibility="private"/> + <conf name="ide" visibility="private" /> <conf name="tests" /> </configurations> <publications> - <artifact type="jar" ext="jar"/> - <artifact type="pom" ext="pom"/> -<artifact type="source" ext="jar" m:classifier="sources" /> -<artifact type="javadoc" ext="jar" m:classifier="javadoc" /> + <artifact type="jar" ext="jar" /> + <artifact type="pom" ext="pom" /> + <artifact type="source" ext="jar" m:classifier="sources" /> + <artifact type="javadoc" ext="jar" m:classifier="javadoc" /> </publications> <dependencies defaultconf="*->default"> <!-- LIBRARY DEPENDENCIES (compile time) --> |