56 lines
1.9 KiB
Diff
56 lines
1.9 KiB
Diff
From 52525455278ad5801cf89a768b81499229af1f68 Mon Sep 17 00:00:00 2001
|
|
From: Michal Srb <msrb@redhat.com>
|
|
Date: Thu, 29 May 2014 13:45:52 +0200
|
|
Subject: [PATCH 10/10] [maven.req] When generating req from POM file, do not
|
|
blindly take first POM file, but iterate over all of them and pick the right
|
|
one
|
|
|
|
---
|
|
depgenerators/maven.req | 23 ++++++++++++++++++++---
|
|
1 file changed, 20 insertions(+), 3 deletions(-)
|
|
|
|
diff --git a/depgenerators/maven.req b/depgenerators/maven.req
|
|
index aea1dd4..dea89d7 100755
|
|
--- a/depgenerators/maven.req
|
|
+++ b/depgenerators/maven.req
|
|
@@ -137,7 +137,9 @@ class TagBuilder(object):
|
|
|
|
if os.path.exists(XMVN_RESOLVE_PATH):
|
|
if is_it_pom_only_pkg(paths[0]):
|
|
- self.__generate_requires_from_pom(ppaths[0])
|
|
+ poms = self.__find_poms_for_metadata(ppaths, paths[0])
|
|
+ for p in poms:
|
|
+ self.__generate_requires_from_pom(p)
|
|
|
|
for path in paths:
|
|
if path.endswith(".pom"):
|
|
@@ -154,8 +156,23 @@ class TagBuilder(object):
|
|
return None
|
|
|
|
|
|
- def __generate_requires_from_pom(self, pomfile):
|
|
- pom = POM(pomfile)
|
|
+ # TODO: move functions like this to some POMUtils, or similar module
|
|
+ def __find_poms_for_metadata(self, pom_paths, metadata_path):
|
|
+ poms = []
|
|
+ depmap = Depmap([metadata_path])
|
|
+ provided = depmap.get_provided_artifacts()
|
|
+ for prov in provided:
|
|
+ for p in pom_paths:
|
|
+ pom = POM(p)
|
|
+ if (pom.groupId == prov.groupId and
|
|
+ pom.artifactId == prov.artifactId and
|
|
+ pom.version == prov.version):
|
|
+
|
|
+ poms.append(pom)
|
|
+ break
|
|
+ return poms
|
|
+
|
|
+ def __generate_requires_from_pom(self, pom):
|
|
plugins = pom.get_plugins()
|
|
extensions = pom.get_extensions()
|
|
pgid = pom.parentGroupId
|
|
--
|
|
1.9.3
|
|
|