# svn revision %global svn_rev 659858 # maven-release-manager version %global mversion 1.0 # maven-release parent pom version %global pversion 5-SNAPSHOT # maven-release-manager jar version %global mjarver 1.0-alpha-%{pversion} # maven-release-plugin jar version %global pjarver 2.0-beta-8-SNAPSHOT Name: maven-release Version: 2.0 Release: 0.%{svn_rev}svn.2%{?dist} Summary: Release a project updating the POM and tagging in the SCM Group: Development/Libraries License: ASL 2.0 URL: http://maven.apache.org/plugins/maven-release-plugin/ # tar creation instructions # svn export -r659858 http://svn.apache.org/repos/asf/maven/release/trunk maven-release # tar cf maven-release-2.0.tar maven-release # xz maven-release-2.0.tar Source0: maven-release-2.0.tar.xz # Remove deps needed for tests, till jmock gets packaged Patch0: 001-mavenreleasemanager-skiptests.patch Patch1: 002-mavenreleaseplugin-skiptests.patch # Remove helpmojo goal, till maven-plugin-plugin gets updated Patch2: 003-mavenreleaseplugin-skiphelpmojo.patch BuildArch: noarch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) BuildRequires: java-devel BuildRequires: jpackage-utils BuildRequires: maven-scm >= 1.2-6 BuildRequires: maven2 BuildRequires: maven2-common-poms >= 0:1.0-13 BuildRequires: maven2-plugin-antrun BuildRequires: maven2-plugin-jar BuildRequires: maven2-plugin-javadoc BuildRequires: maven2-plugin-source BuildRequires: maven2-plugin-compiler BuildRequires: maven2-plugin-install BuildRequires: maven2-plugin-plugin BuildRequires: maven2-plugin-resources BuildRequires: maven2-plugin-site BuildRequires: maven-shared-plugin-testing-harness BuildRequires: plexus-maven-plugin BuildRequires: plexus-utils ### FIXME tomcat5-servlet-api should require tomcat5 (parent POM) BuildRequires: tomcat5-servlet-2.4-api BuildRequires: tomcat5 Requires: java Requires: jpackage-utils Requires(post): jpackage-utils Requires(postun): jpackage-utils %description This plugin is used to release a project with Maven, saving a lot of repetitive, manual work. Releasing a project is made in two steps: prepare and perform. %package manager Summary: Release a project updating the POM and tagging in the SCM Group: Development/Libraries Requires: %{name} = %{version}-%{release} Requires: jpackage-utils BuildArch: noarch %description manager This package contains %{name}-manager needed by %{name}-plugin. %package plugin Summary: Release a project updating the POM and tagging in the SCM Group: Development/Libraries Requires: %{name}-manager = %{version}-%{release} Requires: jpackage-utils BuildArch: noarch %description plugin This plugin is used to release a project with Maven, saving a lot of repetitive, manual work. Releasing a project is made in two steps: prepare and perform. %package manager-javadoc Summary: Javadocs for %{name}-manager Group: Documentation Requires: %{name}-manager = %{version}-%{release} Requires: jpackage-utils BuildArch: noarch %description manager-javadoc This package contains the API documentation for %{name}-manager. %package plugin-javadoc Summary: Javadocs for %{name}-plugin Group: Documentation Requires: %{name}-plugin = %{version}-%{release} Requires: jpackage-utils BuildArch: noarch %description plugin-javadoc This package contains the API documentation for %{name}-plugin. %prep %setup -q -n %{name} %patch0 -p1 %patch1 -p1 %patch2 -p1 cat > README << EOT %{name}-%{version} This plugin is used to release a project with Maven, saving a lot of repetitive, manual work. Releasing a project is made in two steps: prepare and perform. EOT %build export MAVEN_REPO_LOCAL=$(pwd)/.m2/repository mkdir -p $MAVEN_REPO_LOCAL mvn-jpp \ -e \ -Dmaven.repo.local=$MAVEN_REPO_LOCAL \ -Dmaven.test.skip=true \ install javadoc:javadoc %install rm -rf $RPM_BUILD_ROOT mkdir -p $RPM_BUILD_ROOT%{_javadir} # jars install -Dp -m 644 %{name}-manager/target/%{name}-manager-%{mjarver}.jar \ $RPM_BUILD_ROOT%{_javadir}/ (cd $RPM_BUILD_ROOT%{_javadir} \ && ln -sf %{name}-manager-%{mjarver}.jar %{name}-manager-%{mversion}.jar \ && ln -sf %{name}-manager-%{mjarver}.jar %{name}-manager.jar) install -Dp -m 644 %{name}-plugin/target/%{name}-plugin-%{pjarver}.jar \ $RPM_BUILD_ROOT%{_javadir}/ (cd $RPM_BUILD_ROOT%{_javadir} \ && ln -sf %{name}-plugin-%{pjarver}.jar %{name}-plugin-%{version}.jar \ && ln -sf %{name}-plugin-%{pjarver}.jar %{name}-plugin.jar) # javadocs mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-manager-%{mversion} cp -rp %{name}-manager/target/site/apidocs/ \ $RPM_BUILD_ROOT%{_javadocdir}/%{name}-manager-%{mversion} (cd $RPM_BUILD_ROOT%{_javadocdir} && ln -sf %{name}-manager-%{mversion} %{name}-manager) mkdir -p $RPM_BUILD_ROOT%{_javadocdir}/%{name}-plugin-%{version} cp -rp %{name}-plugin/target/site/apidocs/ \ $RPM_BUILD_ROOT%{_javadocdir}/%{name}-plugin-%{version} (cd $RPM_BUILD_ROOT%{_javadocdir} && ln -sf %{name}-plugin-%{version} %{name}-plugin) # poms install -d -m 755 $RPM_BUILD_ROOT%{_datadir}/maven2/poms install -pm 644 pom.xml \ $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}.pom install -pm 644 %{name}-manager/pom.xml \ $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}-manager.pom install -pm 644 %{name}-plugin/pom.xml \ $RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP-%{name}-plugin.pom %add_to_maven_depmap org.apache.maven.release %{name} %{pversion} JPP %{name} %add_to_maven_depmap org.apache.maven.release %{name}-manager %{mjarver} JPP %{name}-manager %add_to_maven_depmap org.apache.maven.plugins %{name}-plugin %{pjarver} JPP %{name}-plugin %clean rm -rf $RPM_BUILD_ROOT %files %defattr(-,root,root,-) %doc README %{_mavenpomdir}/JPP-%{name}.pom %{_mavendepmapfragdir}/* %files manager %defattr(-,root,root,-) %{_javadir}/*manager* %{_mavenpomdir}/JPP-%{name}-manager.pom %files plugin %defattr(-,root,root,-) %{_javadir}/*plugin* %{_mavenpomdir}/JPP-%{name}-plugin.pom %files manager-javadoc %defattr(-,root,root,-) %{_javadocdir}/%{name}-manager %{_javadocdir}/%{name}-manager-%{mversion} %files plugin-javadoc %defattr(-,root,root,-) %{_javadocdir}/%{name}-plugin %{_javadocdir}/%{name}-plugin-%{version} %post %update_maven_depmap %postun %update_maven_depmap %changelog * Mon May 10 2010 Guido Grazioli - 2.0-0.659858svn.2 - Fix release tag - Better macro usage * Mon Apr 26 2010 Guido Grazioli - 2.0-0.659858svn.1 - Install maven-release-parent pom in dedicated package - Patch maven-release-plugin to skip helpmojo goal - Patch to skip tests depending on (unpackaged) jmock * Fri Apr 16 2010 Guido Grazioli - 2.0-0.659858svn - Initial packaging