polx        2004/02/04 02:39:04

  Modified:    jelly    maven.xml
  Log:
  Now with the production of a classpath file and configurable paths.
  paul
  
  Revision  Changes    Path
  1.68      +42 -22    jakarta-commons/jelly/maven.xml
  
  Index: maven.xml
  ===================================================================
  RCS file: /home/cvs/jakarta-commons/jelly/maven.xml,v
  retrieving revision 1.67
  retrieving revision 1.68
  diff -u -r1.67 -r1.68
  --- maven.xml 3 Feb 2004 22:52:46 -0000       1.67
  +++ maven.xml 4 Feb 2004 10:39:04 -0000       1.68
  @@ -318,9 +318,22 @@
        
        <goal name="pack-fat-jar" prereqs=""
                        description="Creates a jar with all the dependencies of jelly 
and the taglibs indicated in ${tagLibs}.">
  +     <!-- variables: 
  +             - tagLibs: a comma-separated list of taglib-names (without the 
"jelly:")
  +             - doBuildAll: a boolean that says wether we invoke build (of jelly, 
and the taglibs)
  +                When true, invokes jar:install-snapshot on jelly and each taglib 
included
  +             - fatJarName: the location of the fat-jar collected
  +       -->
        <!-- this goal isn't really much tested yet but could be the key
                to get a better packaging -->
  -                     
  +             
  +             <property name="tagLibs" value=""/>
  +             <property name="doBuildAll" value="false"/>
  +             <property name="fatJarPath" value="${maven.build.dir}/fatjelly.jar"/>
  +             <property name="classpathFile" 
value="${maven.build.dir}/classpath-with-deps.txt"/>
  +             
  +             <!-- if we need to build, we need to build first jelly -->
  +             <j:if test="${doBuildAll}"><attainGoal 
name="jar:install-snapshot"/></j:if>
       <j:new var="jellyTaglibNames" className="java.util.HashSet"/>
       <j:set var="taglibs_projects" value=""/>
                <util:tokenize delim="," var="tagLibnames">${tagLibs}</util:tokenize>
  @@ -336,13 +349,18 @@
         <!-- collect all dependencies in a set -->
        <j:new var="deps" className="java.util.HashSet"/>
   
  -    <maven:reactor
  -      basedir="."
  -      postProcessing="true"
  -      includes="${taglibs_projects}"
  -      ignoreFailures="false">
  -        </maven:reactor>
  -    <j:forEach var="reactorProject" items="${reactorProjects}">
  +             <j:choose>
  +                     <j:when test="${doBuildAll}">
  +                             <maven:reactor basedir="." postProcessing="true" 
goals="jar:install-snapshot"
  +                                     includes="${taglibs_projects}" 
ignoreFailures="false"/>
  +                             </j:when>
  +                     <j:otherwise>
  +                             <maven:reactor basedir="." postProcessing="true"
  +                                     includes="${taglibs_projects}" 
ignoreFailures="false"/>
  +                             </j:otherwise>
  +                     </j:choose>
  +             
  +             <j:forEach var="reactorProject" items="${reactorProjects}">
         <j:forEach var="dep" 
items="${reactorProject.dependencies}">${deps.add(dep)}</j:forEach>
       </j:forEach>
       <j:forEach var="tl" items="${jellyTaglibNames}">
  @@ -355,7 +373,7 @@
         ${deps.add(tlD)}
         </j:forEach>
     
  -    <maven:reactor
  +    <!-- <maven:reactor
           basedir="."
           postProcessing="true"
           includes="project.xml"
  @@ -363,22 +381,24 @@
           </maven:reactor>
       <j:forEach var="reactorProject" items="${reactorProjects}">
         <j:forEach var="dep" 
items="${reactorProject.dependencies}">${deps.add(dep)}</j:forEach>
  -    </j:forEach>
  +    </j:forEach> -->
   
  -    
  -    <j:file name="${maven.build.dir}/deps.txt">${deps}</j:file>
  -    
  -    <!-- we could process project's dependencies if we were a plugin -->
  +
  +             <j:if test="${'' ne classpathFile}">    
  +    <j:file name="${classpathFile}" omitXmlDeclaration="true"><j:forEach 
items="${deps}" trim="true" 
var="dep">${maven.repo.local}/${dep.groupId}/${dep.type}s/${dep.artifactId}-${dep.version}.${dep.type}${path.separator}</j:forEach></j:file>
  +             </j:if>
       
       <!-- merging it all -->
  -    <jar destfile="${maven.build.dir}/jellypack.jar">
  -      <manifest>
  -        <attribute name="Main-Class" 
value="org.apache.commons.jelly.Jelly"/></manifest>
  -      <j:forEach var="dep" items="${deps}">
  -        <zipfileset 
src="${maven.repo.local}/${dep.groupId}/${dep.type}s/${dep.artifact}" />
  -        <echo>Adding jar 
${maven.repo.local}/${dep.groupId}/${dep.type}s/${dep.artifact}.</echo>
  -        </j:forEach>
  -      </jar>
  +             <j:if test="${'' ne fatJarPath}">
  +                     <jar destfile="${fatJarPath}">
  +                             <manifest>
  +                                     <attribute name="Main-Class" 
value="org.apache.commons.jelly.Jelly"/></manifest>
  +                             <j:forEach var="dep" items="${deps}">
  +                                     <zipfileset 
src="${maven.repo.local}/${dep.groupId}/${dep.type}s/${dep.artifact}" />
  +                                     <echo>Adding jar 
${maven.repo.local}/${dep.groupId}/${dep.type}s/${dep.artifact}.</echo>
  +                                     </j:forEach>
  +                             </jar>
  +                     </j:if>
                        
                </goal>
   </project>
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to