commit 1ae9fb1553d36abdee817bffc0b420d17e5b549e
Author: Stanislav Ochotnicky <sochotnicky(a)redhat.com>
Date: Tue Dec 21 15:25:37 2010 +0100
Add fedora local resolver
- Fix quoting of arguments to mvn scripts
- Add javadoc subpackage
- Make jars versionless and remove unneeded clean section
0003-Use-custom-resolver.patch | 133 +++++++++++++++++++++++++
JavadirWorkspaceReader.java | 95 ++++++++++++++++++
MavenJPackageDepmap.java | 213 ++++++++++++++++++++++++++++++++++++++++
maven-script | 2 +-
maven-script-local | 10 ++
maven.spec | 54 +++++++---
6 files changed, 490 insertions(+), 17 deletions(-)
---
diff --git a/0003-Use-custom-resolver.patch b/0003-Use-custom-resolver.patch
new file mode 100644
index 0000000..c07b671
--- /dev/null
+++ b/0003-Use-custom-resolver.patch
@@ -0,0 +1,133 @@
+From efb78912935d04507ce36951686608d33a3b3647 Mon Sep 17 00:00:00 2001
+From: Stanislav Ochotnicky <sochotnicky(a)redhat.com>
+Date: Tue, 2 Nov 2010 14:47:05 +0100
+Subject: [PATCH 3/3] Use custom resolver
+
+---
+ .../org/apache/maven/artifact/ArtifactUtils.java | 8 ++++++--
+ .../main/java/org/apache/maven/DefaultMaven.java | 6 ++++++
+ .../apache/maven/plugin/MavenPluginValidator.java | 3 ++-
+ .../internal/DefaultPluginVersionResolver.java | 7 +++++++
+ .../model/validation/DefaultModelValidator.java | 13 ++++++++++---
+ 5 files changed, 31 insertions(+), 6 deletions(-)
+
+diff --git a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
+index 1f37d4f..04bc346 100644
+--- a/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
++++ b/maven-artifact/src/main/java/org/apache/maven/artifact/ArtifactUtils.java
+@@ -99,12 +99,16 @@ public final class ArtifactUtils
+ {
+ throw new NullPointerException( "artifactId is null" );
+ }
+- if ( version == null )
++ if ( version == null && System.getProperty("maven.jpp.mode")
== null )
+ {
+ throw new NullPointerException( "version is null" );
+ }
+
+- return groupId + ":" + artifactId + ":" + version;
++ if( System.getProperty("maven.jpp.mode") == null ) {
++ return groupId + ":" + artifactId + ":" + version;
++ } else {
++ return versionlessKey(groupId, artifactId);
++ }
+ }
+
+ public static Map<String, Artifact> artifactMapByVersionlessId(
Collection<Artifact> artifacts )
+diff --git a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+index e892ee9..b0bfea6 100644
+--- a/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
++++ b/maven-core/src/main/java/org/apache/maven/DefaultMaven.java
+@@ -55,6 +55,7 @@ import org.apache.maven.project.ProjectBuildingException;
+ import org.apache.maven.project.ProjectBuildingRequest;
+ import org.apache.maven.project.ProjectBuildingResult;
+ import org.apache.maven.project.ProjectSorter;
++import org.apache.maven.artifact.resolver.JavadirWorkspaceReader;
+ import org.apache.maven.repository.DelegatingLocalArtifactRepository;
+ import org.apache.maven.repository.LocalRepositoryNotAccessibleException;
+ import org.apache.maven.settings.Mirror;
+@@ -361,6 +362,11 @@ public class DefaultMaven
+ session.setWorkspaceReader( workspaceRepository );
+ }
+
++ if ( System.getProperty("maven.jpp.mode") != null)
++ {
++ session.setWorkspaceReader(new JavadirWorkspaceReader());
++ }
++
+ DefaultSettingsDecryptionRequest decrypt = new
DefaultSettingsDecryptionRequest();
+ decrypt.setProxies( request.getProxies() );
+ decrypt.setServers( request.getServers() );
+diff --git a/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
b/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
+index 009635b..91ad68e 100644
+--- a/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
++++ b/maven-core/src/main/java/org/apache/maven/plugin/MavenPluginValidator.java
+@@ -60,7 +60,8 @@ public class MavenPluginValidator
+ errors.add( "Plugin's descriptor contains the wrong artifact ID:
" + pluginDescriptor.getArtifactId() );
+ }
+
+- if ( !pluginArtifact.getBaseVersion().equals( pluginDescriptor.getVersion() ) )
++ if ( !pluginArtifact.getBaseVersion().equals( pluginDescriptor.getVersion() )
++ && System.getProperty("maven.jpp.mode") == null)
+ {
+ errors.add( "Plugin's descriptor contains the wrong version: "
+ pluginDescriptor.getVersion() );
+ }
+diff --git
a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
+index fb074fb..9583d05 100644
+---
a/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
++++
b/maven-core/src/main/java/org/apache/maven/plugin/version/internal/DefaultPluginVersionResolver.java
+@@ -75,6 +75,13 @@ public class DefaultPluginVersionResolver
+ throws PluginVersionResolutionException
+ {
+ logger.debug( "Resolving plugin version for " + request.getGroupId() +
":" + request.getArtifactId() );
++ if (System.getProperty("maven.jpp.mode") != null) {
++ DefaultPluginVersionResult result = new
DefaultPluginVersionResult("latest");
++
result.setRepository(request.getRepositorySession().getWorkspaceReader().getRepository());
++ logger.debug( "Resolved plugin version for " +
request.getGroupId() + ":" + request.getArtifactId()
++ + " to latest from repository " +
result.getRepository());
++ return result;
++ }
+
+ PluginVersionResult result = resolveFromProject( request );
+
+diff --git
a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
+index 033211a..1c09272 100644
+---
a/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
++++
b/maven-model-builder/src/main/java/org/apache/maven/model/validation/DefaultModelValidator.java
+@@ -405,7 +405,10 @@ public class DefaultModelValidator
+
+ if ( !management )
+ {
+- validateVersion( prefix + "version", problems, errOn30,
d.getVersion(), d.getManagementKey(), d );
++ if(System.getProperty("maven.jpp.mode") != null &&
d.getVersion() == null)
++ d.setVersion("latest");
++ else
++ validateVersion( prefix + "version", problems,
errOn30, d.getVersion(), d.getManagementKey(), d );
+
+ /*
+ * TODO: Extensions like Flex Mojos use custom scopes like
"merged", "internal", "external", etc.
+@@ -433,7 +436,10 @@ public class DefaultModelValidator
+ {
+ validateEffectiveDependency( problems, d, false, prefix, request );
+
+- validateVersion( prefix + "version", problems, errOn30,
d.getVersion(), d.getManagementKey(), d );
++ if(System.getProperty("maven.jpp.mode") != null &&
d.getVersion() == null)
++ d.setVersion("latest");
++ else
++ validateVersion( prefix + "version", problems, errOn30,
d.getVersion(), d.getManagementKey(), d );
+
+ validateEnum( prefix + "scope", problems, errOn30,
d.getScope(), d.getManagementKey(), d, "compile",
+ "runtime", "system" );
+@@ -452,7 +458,8 @@ public class DefaultModelValidator
+ {
+ validateStringNotEmpty( prefix + "type", problems, Severity.ERROR,
d.getType(), d.getManagementKey(), d );
+
+- validateStringNotEmpty( prefix + "version", problems,
Severity.ERROR, d.getVersion(), d.getManagementKey(),
++ if(System.getProperty("maven.jpp.mode") == null)
++ validateStringNotEmpty( prefix + "version", problems,
Severity.ERROR, d.getVersion(), d.getManagementKey(),
+ d );
+ }
+
+--
+1.7.3.2
+
diff --git a/JavadirWorkspaceReader.java b/JavadirWorkspaceReader.java
new file mode 100644
index 0000000..ba1c20b
--- /dev/null
+++ b/JavadirWorkspaceReader.java
@@ -0,0 +1,95 @@
+package org.apache.maven.artifact.resolver;
+
+import org.apache.maven.artifact.repository.MavenJPackageDepmap;
+
+import java.io.File;
+import java.util.List;
+import java.util.LinkedList;
+import java.util.Hashtable;
+
+import org.sonatype.aether.repository.WorkspaceReader;
+import org.sonatype.aether.repository.WorkspaceRepository;
+import org.sonatype.aether.artifact.Artifact;
+
+
+public class JavadirWorkspaceReader
+ implements WorkspaceReader
+{
+ private WorkspaceRepository workspaceRepository;
+
+ private static final char GROUP_SEPARATOR = '.';
+ private static final char PATH_SEPARATOR = '/';
+
+
+ public JavadirWorkspaceReader() {
+ workspaceRepository = new WorkspaceRepository("javadir-workspace");
+ }
+
+ public WorkspaceRepository getRepository() {
+ return workspaceRepository;
+ }
+
+ public File findArtifact( Artifact artifact ) {
+ MavenJPackageDepmap.debug("=============JAVADIRREADER-FIND_ARTIFACT: " +
artifact.getArtifactId());
+ StringBuffer path = new StringBuffer();
+
+ String artifactId = artifact.getArtifactId();
+ String groupId = artifact.getGroupId();
+ String version = artifact.getVersion();
+
+ MavenJPackageDepmap.debug("Wanted GROUPID=" + groupId);
+ MavenJPackageDepmap.debug("Wanted ARTIFACTID=" + artifactId);
+
+ if (!groupId.startsWith("JPP")) {
+ MavenJPackageDepmap map = MavenJPackageDepmap.getInstance();
+ Hashtable<String,String> newInfo = map.getMappedInfo(groupId,
artifactId, version);
+
+ groupId = (String) newInfo.get("group");
+ artifactId = (String) newInfo.get("artifact");
+ }
+ MavenJPackageDepmap.debug("Resolved GROUPID=" + groupId);
+ MavenJPackageDepmap.debug("Resolved ARTIFACTID=" + artifactId);
+
+ if (artifact.getExtension().equals("pom")) {
+ path = getPOMPath(groupId, artifactId);
+ } else if (artifact.getExtension().equals("signature")) {
+ path.append("/usr/share/maven/repository/");
+ path.append( groupId ).append( '/' );
+ path.append( artifactId ).append( ".signature" );
+ } else {
+ path.append("/usr/share/maven/repository/");
+ path.append( groupId ).append( '/' );
+ path.append( artifactId ).append( ".jar" );
+ }
+
+ MavenJPackageDepmap.debug("Returning " + path.toString());
+ return new File(path.toString());
+ }
+
+ public List<String> findVersions( Artifact artifact ) {
+ List<String> ret = new LinkedList<String>();
+ ret.add("latest");
+ return ret;
+ }
+
+ private StringBuffer getPOMPath(String groupId, String artifactId) {
+
+ StringBuffer path = new StringBuffer();
+ String fName = groupId.replace(PATH_SEPARATOR, GROUP_SEPARATOR) + "-" +
artifactId + ".pom";
+ path.append(System.getProperty("maven.jpp.pom.path",
"JPP/maven2/poms")).append("/").append(fName);
+ java.io.File f;
+
+ // NOTE: We are returning default_poms/ as the path for this pom
+ // even though it may not exist there. This may cause an error,
+ // but that is fine because if the pom is not there, there is
+ // a serious problem anyways..
+ f = new java.io.File(System.getProperty("maven.jpp.default.repo",
"/usr/share/maven2/repository") + "/" + path.toString());
+ //System.err.println("Checking path " + f.getAbsolutePath() + "
for the pom");
+ if (!f.exists()) {
+ path = new StringBuffer();
+ path.append(System.getProperty("maven.jpp.default.pom.path",
"JPP/maven2/default_poms")).append("/").append(fName);
+ }
+ path.insert(0, "/usr/share/maven2/repository/");
+ return path;
+ }
+}
diff --git a/MavenJPackageDepmap.java b/MavenJPackageDepmap.java
new file mode 100644
index 0000000..c65155a
--- /dev/null
+++ b/MavenJPackageDepmap.java
@@ -0,0 +1,213 @@
+package org.apache.maven.artifact.repository;
+
+
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.util.Hashtable;
+import java.util.StringTokenizer;
+
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.ParserConfigurationException;
+
+
+import org.xml.sax.SAXException;
+
+import org.w3c.dom.*;
+
+
+public class MavenJPackageDepmap {
+
+ private static class ArtifactDefinition {
+ String groupId = null;
+ String artifactId = null;
+ String version = null;
+ }
+
+ private static MavenJPackageDepmap instance;
+ private static Hashtable<String, String> jppArtifactMap;
+
+ private MavenJPackageDepmap() {
+ jppArtifactMap = new Hashtable<String,String>();
+ buildJppArtifactMap();
+ }
+
+ public static MavenJPackageDepmap getInstance() {
+ if (instance == null) {
+ instance = new MavenJPackageDepmap();
+ }
+
+ return instance;
+ }
+
+ public Hashtable<String, String> getMappedInfo(Hashtable<String, String>
mavenDep) {
+ return getMappedInfo((String) mavenDep.get("group"),
+ (String) mavenDep.get("artifact"),
+ (String) mavenDep.get("version"));
+ }
+
+ public Hashtable<String, String> getMappedInfo(String groupId, String artifactId,
String version) {
+
+ Hashtable<String, String> jppDep;
+ String idToCheck, jppCombination;
+
+ if (System.getProperty("maven.ignore.versions") == null &&
System.getProperty("maven.jpp.mode") == null) {
+ idToCheck = groupId+","+artifactId+","+version;
+ } else {
+ idToCheck = groupId+","+artifactId;
+ }
+
+ jppCombination = (String) jppArtifactMap.get(idToCheck);
+
+ //System.err.println("*** " +
groupId+","+artifactId+","+version + " => " +
jppCombination);
+
+ jppDep = new Hashtable<String, String>();
+ if (jppCombination != null && jppCombination != "") {
+
+ StringTokenizer st = new StringTokenizer(jppCombination, ",");
+
+ jppDep.put("group", st.nextToken());
+ jppDep.put("artifact",st.nextToken());
+ jppDep.put("version",st.nextToken());
+
+ } else {
+ jppDep.put("group", groupId);
+ jppDep.put("artifact", artifactId);
+ jppDep.put("version", version);
+ }
+
+ return jppDep;
+ }
+
+
+ /**
+ * Returns whether or not the given dependency should be dropped.
+ */
+ public boolean shouldEliminate(String groupId, String artifactId, String version) {
+ String idToCheck;
+
+ if (System.getProperty("maven.ignore.versions") == null &&
System.getProperty("maven.jpp.mode") == null) {
+ idToCheck = groupId+","+artifactId+","+version;
+ } else {
+ idToCheck = groupId+","+artifactId;
+ }
+
+ return jppArtifactMap.get(idToCheck) != null &&
jppArtifactMap.get(idToCheck).equals("");
+
+ }
+
+ private static void buildJppArtifactMap() {
+
+ if (System.getProperty("maven.ignore.versions") != null ||
System.getProperty("maven.jpp.mode") != null) {
+ debug("Processing file:
/usr/share/java-utils/xml/maven2-versionless-depmap.xml");
+ processDepmapFile("/etc/maven/maven2-versionless-depmap.xml");
+ }
+
+ debug("Processing file: /usr/share/java-utils/xml/maven2-depmap.xml");
+ processDepmapFile("/etc/maven/maven2-depmap.xml");
+
+ String customFileName = System.getProperty("maven.jpp.depmap.file", null);
+ if (customFileName != null) {
+ debug("Processing file: " + customFileName);
+ processDepmapFile(customFileName);
+ }
+ }
+
+ private static void processDepmapFile(String fileName) {
+
+ Document mapDocument;
+ debug("Loading depmap file: " + fileName);
+ try {
+ DocumentBuilderFactory fact = DocumentBuilderFactory.newInstance();
+ fact.setNamespaceAware(true);
+ DocumentBuilder builder = fact.newDocumentBuilder();
+ mapDocument = builder.parse(fileName);
+ } catch (FileNotFoundException fnfe) {
+ System.err.println("ERROR: Unable to find map file: " + fileName);
+ fnfe.printStackTrace();
+ return;
+ } catch (IOException ioe) {
+ System.err.println("ERROR: I/O exception occured when opening map file");
+ ioe.printStackTrace();
+ return;
+ } catch (ParserConfigurationException pce) {
+ System.err.println("ERROR: Parsing of depmap file failed - configuration");
+ pce.printStackTrace();
+ return;
+ } catch (SAXException se) {
+ System.err.println("ERROR: Parsing of depmap file failed");
+ se.printStackTrace();
+ return;
+ }
+
+ NodeList depNodes = (NodeList)
mapDocument.getElementsByTagName("dependency");
+
+ for (int i = 0; i < depNodes.getLength(); i++) {
+ Element depNode = (Element) depNodes.item(i);
+
+ NodeList mavenNodeList = (NodeList) depNode.getElementsByTagName("maven");
+ if (mavenNodeList.getLength() != 1) {
+ debug("Number of maven sub-elements is not 1. Bailing from depmap
generation");
+ debug("Maven node: " + depNode.getTextContent());
+ return;
+ }
+ ArtifactDefinition mavenAD = getArtifactDefinition((Element) mavenNodeList.item(0));
+
+ ArtifactDefinition jppAD = null;
+ NodeList jppNodeList = (NodeList) depNode.getElementsByTagName("jpp");
+
+ if (jppNodeList.getLength() == 1) {
+ jppAD = getArtifactDefinition((Element) jppNodeList.item(0));
+ if (System.getProperty("maven.ignore.versions") == null &&
System.getProperty("maven.jpp.mode") == null) {
+ debug("*** Adding: " + mavenAD.groupId + "," +
mavenAD.artifactId + "," + mavenAD.version + " => "
+ + jppAD.groupId + "," + jppAD.artifactId + "," +
jppAD.version + " to map...");
+
+ jppArtifactMap.put(mavenAD.groupId + "," + mavenAD.artifactId +
"," + mavenAD.version,
+ jppAD.groupId + "," + jppAD.artifactId + "," +
jppAD.version);
+ } else {
+ debug("*** Adding: " + mavenAD.groupId+"," + mavenAD.artifactId
+ " => "
+ + jppAD.groupId + "," + jppAD.artifactId + "," +
jppAD.version + " to map...");
+
+ jppArtifactMap.put(mavenAD.groupId+","+mavenAD.artifactId,
+ jppAD.groupId + "," + jppAD.artifactId + "," +
jppAD.version);
+ }
+ } else {
+ debug("Number of jpp sub-elements is not 1. Dropping dependency");
+ debug("*** Adding: " +
mavenAD.groupId+","+mavenAD.artifactId+"," + " => " +
"JPP/maven2,empty-dep,"+mavenAD.version + " to map...");
+ jppArtifactMap.put(mavenAD.groupId+","+mavenAD.artifactId,
"JPP/maven2,empty-dep,"+mavenAD.version);
+ }
+ }
+ }
+
+ private static ArtifactDefinition getArtifactDefinition(Element element) {
+ ArtifactDefinition ad = new ArtifactDefinition();
+
+ NodeList nodes = element.getElementsByTagName("groupId");
+ if (nodes.getLength() != 1) {
+ debug("groupId definition not found in depmap");
+ return null;
+ }
+ ad.groupId = nodes.item(0).getTextContent();
+
+ nodes = element.getElementsByTagName("artifactId");
+ if (nodes.getLength() != 1) {
+ debug("artifactId definition not found in depmap");
+ return null;
+ }
+ ad.artifactId = nodes.item(0).getTextContent();
+
+ nodes = element.getElementsByTagName("version");
+ if (nodes.getLength() != 1) {
+ ad.version = "DUMMY_VER";
+ } else {
+ ad.version = nodes.item(0).getTextContent();
+ }
+ return ad;
+ }
+
+
+ public static void debug(String msg) {
+ if (System.getProperty("maven.jpp.debug") != null)
+ System.err.println(msg);
+ }
+}
diff --git a/maven-script b/maven-script
index 83187d7..e119cf5 100644
--- a/maven-script
+++ b/maven-script
@@ -7,4 +7,4 @@ fi
export M2_HOME=/usr/share/maven
echo $JAVA_HOME
-export JAVA_HOME; $M2_HOME/bin/mvn $@
+export JAVA_HOME; $M2_HOME/bin/mvn "$@"
diff --git a/maven-script-local b/maven-script-local
new file mode 100644
index 0000000..cb30777
--- /dev/null
+++ b/maven-script-local
@@ -0,0 +1,10 @@
+#!/bin/sh
+if [ -f /usr/share/java-utils/java-functions ] ; then
+ . /usr/share/java-utils/java-functions
+ set_jvm
+ set_javacmd
+fi
+
+export M2_HOME=/usr/share/maven
+echo $JAVA_HOME
+export JAVA_HOME; $M2_HOME/bin/mvn -Dmaven.jpp.mode "$@"
diff --git a/maven.spec b/maven.spec
index dc19f5a..7fe65cf 100644
--- a/maven.spec
+++ b/maven.spec
@@ -1,7 +1,7 @@
Name: maven
Version: 3.0
-Release: 3%{?dist}
+Release: 4%{?dist}
Summary: Java project management and project comprehension tool
Group: Development/Tools
@@ -9,14 +9,22 @@ License: ASL 2.0 and MIT and BSD
URL:
http://maven.apache.org/
Source0:
http://www.apache.org/dyn/closer.cgi/maven/source/apache-%{name}-%{versio...
+# custom resolver java files
+# source: git clone
git://fedorapeople.org/~sochotni/maven-javadir-resolver/
+Source100: JavadirWorkspaceReader.java
+Source101: MavenJPackageDepmap.java
+
# 2xx for created non-buildable sources
Source200: %{name}-script
+Source201: %{name}-script-local
# Patch1XX could be upstreamed probably
# Patch15X are already upstream
Patch150: 0001-Add-plexus-default-container-dep.patch
-BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
+# Patch2XX for non-upstreamable patches
+Patch200: 0003-Use-custom-resolver.patch
+
BuildArch: noarch
BuildRequires: maven2
@@ -75,17 +83,22 @@ Maven is a software project management and comprehension tool. Based
on the
concept of a project object model (POM), Maven can manage a project's build,
reporting and documentation from a central piece of information.
-%package javadoc
-Summary: API documentation for %{name}
-Group: Documentation
-Requires: jpackage-utils
+%package javadoc
+Summary: API documentation for %{name}
+Group: Documentation
+Requires: jpackage-utils
-%description javadoc
+%description javadoc
%{summary}.
%prep
%setup -q -n apache-%{name}-%{version}
%patch150 -p1
+%patch200 -p1
+
+# get custom resolver in place
+cp %{SOURCE100} maven-core/src/main/java/org/apache/maven/artifact/resolver
+cp %{SOURCE101} maven-core/src/main/java/org/apache/maven/artifact/repository
# not really used during build, but a precaution
rm maven-ant-tasks-*.jar
@@ -126,8 +139,6 @@ chmod -x apache-%{name}-%{version}/conf/settings.xml
%install
-rm -rf $RPM_BUILD_ROOT
-
export M2_HOME=$(pwd)/m2home/apache-maven-%{version}
# maven2 directory in /usr/share/java
@@ -182,7 +193,7 @@ install -dm 755 $RPM_BUILD_ROOT%{_datadir}/%{name}/lib
plexus/interpolation plexus/plexus-sec-dispatcher
plexus/utils \
sisu/sisu-inject-bean sisu/sisu-inject-plexus
maven-wagon/file \
maven-wagon/http-lightweight maven-wagon/http-shared
maven-wagon/provider-api \
- xbean/xbean-reflect xerces-j2 jdom
+ xbean/xbean-reflect xerces-j2 jdom xml-commons-apis
)
################
@@ -218,6 +229,7 @@ install -dm 755 $RPM_BUILD_ROOT%{_bindir}
# Wrappers
cp -af %{SOURCE200} $RPM_BUILD_ROOT%{_bindir}/mvn3
+cp -af %{SOURCE201} $RPM_BUILD_ROOT%{_bindir}/mvn3-local
###################
# Individual jars #
@@ -230,10 +242,8 @@ for module in maven-aether-provider maven-artifact maven-compat \
maven-settings-builder;do
pushd $module
- install -m 644 target/$module-%{version}.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/
- ln -s $module-%version.jar $RPM_BUILD_ROOT%{_javadir}/%{name}/$module.jar
- ln -s %{_javadir}/%{name}/$module-%{version}.jar \
- $RPM_BUILD_ROOT%{_datadir}/%{name}/lib/$module-%{version}.jar
+ install -m 644 target/$module-%{version}.jar
$RPM_BUILD_ROOT%{_javadir}/%{name}/$module.jar
+ ln -s %{_javadir}/%{name}/$module.jar
$RPM_BUILD_ROOT%{_datadir}/%{name}/lib/$module.jar
install -m 644 pom.xml
$RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-$module.pom
%add_to_maven_depmap org.apache.maven $module %{version} JPP/%{name} $module
popd
@@ -243,9 +253,10 @@ done
install -m 644 pom.xml $RPM_BUILD_ROOT%{_datadir}/%{name}/poms/JPP.%{name}-maven.pom
%add_to_maven_depmap org.apache.maven maven %{version} JPP/%{name} maven
+# javadocs
+install -d -m 755 $RPM_BUILD_ROOT%{_javadocdir}/%{name}
+cp -pr target/site/apidocs/* $RPM_BUILD_ROOT%{_javadocdir}/%{name}
-%clean
-rm -rf $RPM_BUILD_ROOT
%post
%update_maven_depmap
@@ -258,6 +269,7 @@ rm -rf $RPM_BUILD_ROOT
%defattr(-,root,root,-)
%doc LICENSE.txt NOTICE.txt README.txt
%attr(0755,root,root) %{_bindir}/mvn3
+%attr(0755,root,root) %{_bindir}/mvn3-local
%dir %{_datadir}/%{name}
%dir %{_datadir}/%{name}/bin
%attr(0755,root,root) %{_datadir}/%{name}/bin/mvn
@@ -273,9 +285,19 @@ rm -rf $RPM_BUILD_ROOT
%config %{_mavendepmapfragdir}/%{name}
%{_javadir}/%{name}
+%files javadoc
+%defattr(-,root,root,-)
+%doc LICENSE.txt
+%{_javadocdir}/%{name}
%changelog
+* Tue Dec 21 2010 Stanislav Ochotnicky <sochotnicky(a)redhat.com> - 3.0-4
+- Add fedora local resolver
+- Fix quoting of arguments to mvn scripts
+- Add javadoc subpackage
+- Make jars versionless and remove unneeded clean section
+
* Wed Dec 1 2010 Stanislav Ochotnicky <sochotnicky(a)redhat.com> - 3.0-3
- Remove maven-ant-tasks jar in prep
- Make fragment file as %%config