%global project_version 1.0-beta-2
Name: maven-enforcer
Version: 1.0
Release: 0.1.b2%{?dist}
Summary: Maven Enforcer
Group: Development/Libraries
License: ASL 2.0
URL: http://maven.apache.org/enforcer
#svn export http://svn.apache.org/repos/asf/maven/enforcer/tags/enforcer-1.0-beta-2 enforcer-1.0-beta-2
#tar caf enforcer-1.0-beta-2.tar.xz enforcer-1.0-beta-2
Source0: enforcer-%{project_version}.tar.xz
Source1: %{name}-depmap.xml
Patch0: fix-site.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: java-devel >= 1:1.6.0
BuildRequires: maven2
BuildRequires: maven-plugin-plugin
BuildRequires: maven2-plugin-assembly
BuildRequires: plexus-maven-plugin
BuildRequires: maven-compiler-plugin
BuildRequires: maven2-plugin-install
BuildRequires: maven-javadoc-plugin
BuildRequires: maven-jar-plugin
BuildRequires: maven2-plugin-resources
BuildRequires: maven-doxia
BuildRequires: maven-doxia-sitetools
BuildRequires: maven-surefire-maven-plugin
BuildRequires: maven-surefire-provider-junit
BuildRequires: maven-plugin-testing-harness
BuildRequires: maven-plugin-cobertura
BuildRequires: maven-shared-reporting-impl
BuildRequires: maven-site-plugin
BuildRequires: maven-doxia-tools
BuildRequires: tomcat6
Requires: maven2
Requires: jpackage-utils
Requires: java
Requires(post): jpackage-utils
Requires(postun): jpackage-utils
%description
Enforcer is a build rule execution framework.
%package javadoc
Group: Documentation
Summary: Javadoc for %{name}
Requires: jpackage-utils
%description javadoc
API documentation for %{name}.
%package api
Summary: Enforcer API
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
%description api
This component provides the generic interfaces needed to
implement custom rules for the maven-enforcer-plugin.
%package rules
Summary: Enforcer Rules
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}-api
%description rules
This component contains the standard Enforcer Rules.
%package -n maven-enforcer-plugin
Summary: Enforcer Rules
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}-rules
Obsoletes: maven2-plugin-enforcer <= 0:2.0.8
Provides: maven2-plugin-enforcer = 1:%{version}-%{release}
%description -n maven-enforcer-plugin
This component contains the standard Enforcer Rules.
%prep
%setup -q -n enforcer-%{project_version}
%patch0
%build
export MAVEN_REPO_LOCAL=$(pwd)/.m2/repository
mvn-jpp \
-e \
-Dmaven2.jpp.mode=true \
-Dmaven.repo.local=$MAVEN_REPO_LOCAL \
-Dmaven2.jpp.depmap.file=%{SOURCE1} \
-Dmaven.test.failure.ignore=true \
install javadoc:javadoc
%install
rm -rf %{buildroot}
# jars
install -d -m 0755 %{buildroot}%{_javadir}/%{name}
install -m 644 enforcer-api/target/enforcer-api-%{project_version}.jar \
%{buildroot}%{_javadir}/%{name}/enforcer-api-%{project_version}.jar
install -m 644 enforcer-rules/target/enforcer-rules-%{project_version}.jar \
%{buildroot}%{_javadir}/%{name}/enforcer-rules-%{project_version}.jar
install -m 644 maven-enforcer-plugin/target/maven-enforcer-plugin-%{project_version}.jar \
%{buildroot}%{_javadir}/%{name}/plugin-%{project_version}.jar
(cd %{buildroot}%{_javadir}/%{name} && for jar in *-%{project_version}*; \
do ln -sf ${jar} `echo $jar| sed "s|-%{project_version}||g"`; done)
# 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
%add_to_maven_depmap org.apache.maven.enforcer enforcer %{project_version} JPP %{name}
install -pm 644 enforcer-api/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-enforcer-api.pom
%add_to_maven_depmap org.apache.maven.enforcer enforcer-api %{project_version} JPP/%{name} enforcer-api
install -pm 644 enforcer-rules/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-enforcer-rules.pom
%add_to_maven_depmap org.apache.maven.enforcer enforcer-rules %{project_version} JPP/%{name} enforcer-rules
install -pm 644 maven-enforcer-plugin/pom.xml \
$RPM_BUILD_ROOT%{_datadir}/maven2/poms/JPP.%{name}-plugin.pom
%add_to_maven_depmap org.apache.maven.plugins maven-enforcer-plugin %{project_version} JPP/%{name} plugin
# javadoc
install -d -m 755 %{buildroot}%{_javadocdir}/%{name}-%{version}
for dir in *enforcer*; do
install -d -m 755 %{buildroot}%{_javadocdir}/%{name}-%{version}/$dir
cp -pr $dir/target/site/apidocs/* \
%{buildroot}%{_javadocdir}/%{name}-%{version}/$dir/
done
ln -s %{name}-%{version} \
$RPM_BUILD_ROOT%{_javadocdir}/%{name}
%post
%update_maven_depmap
%postun
%update_maven_depmap
%clean
%{__rm} -rf %{buildroot}
%files
%defattr(-,root,root,-)
%dir %{_javadir}/%{name}
%{_mavenpomdir}/*
%{_mavendepmapfragdir}/*
%files javadoc
%defattr(-,root,root,-)
%{_javadocdir}/%{name}-%{version}
%{_javadocdir}/%{name}
%files api
%defattr(-,root,root,-)
%{_javadir}/%{name}/enforcer-api*
%files rules
%defattr(-,root,root,-)
%{_javadir}/%{name}/enforcer-rules*
%files -n maven-enforcer-plugin
%defattr(-,root,root,-)
%{_javadir}/%{name}/plugin*
%changelog
* Wed May 19 2010 Alexander Kurtakov <akurtako@redhat.com> 1.0-0.1.b2
- Initial package