changeset 22043:770fdbe70bb3

only (re)make archives from build command for distributions with at least one constituent project that was (re)compiled
author Doug Simon <doug.simon@oracle.com>
date Sun, 21 Jun 2015 22:24:40 +0200
parents db48a62aba36
children 5de4a002d097
files mxtool/mx.py
diffstat 1 files changed, 8 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/mxtool/mx.py	Sun Jun 21 21:43:13 2015 +0200
+++ b/mxtool/mx.py	Sun Jun 21 22:24:40 2015 +0200
@@ -3123,9 +3123,16 @@
     if len(tasks) != 0:
         if args.java and not args.only:
             files = []
+            rebuiltProjects = frozenset([t.proj for t in tasks.itervalues()])
             for dist in sorted_dists():
                 if dist not in updatedAnnotationProcessorDists:
-                    archive(['@' + dist.name])
+                    projectsInDist = dist.sorted_deps()
+                    n = len(rebuiltProjects.intersection(projectsInDist))
+                    if n != 0:
+                        log('Updating jars for {0} [{1} constituent projects (re)built]'.format(dist.name, n))
+                        dist.make_archive()
+                    else:
+                        logv('[all constituent projects for {0} are up to date - skipping jar updating]'.format(dist.name))
                 if args.check_distributions and not dist.isProcessorDistribution:
                     with zipfile.ZipFile(dist.path, 'r') as zf:
                         files.extend([member for member in zf.namelist() if not member.startswith('META-INF')])