avalon-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From leosim...@apache.org
Subject cvs commit: avalon-excalibur maven-template.xml maven.log maven.xml project.properties project.xml maven-common.xml project-common.xml
Date Sat, 07 Jun 2003 12:14:52 GMT
leosimons    2003/06/07 05:14:52

  Modified:    .        maven-common.xml project-common.xml
  Added:       .        maven-template.xml maven.log maven.xml
                        project.properties project.xml
  Log:
  More work on maven build system
  
  Revision  Changes    Path
  1.6       +18 -10    avalon-excalibur/maven-common.xml
  
  Index: maven-common.xml
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/maven-common.xml,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- maven-common.xml	5 Jun 2003 21:02:29 -0000	1.5
  +++ maven-common.xml	7 Jun 2003 12:14:52 -0000	1.6
  @@ -20,15 +20,15 @@
       <goal name="excalibur:warn"
               description="Alerts the user that the maven build is in development">
           <ant:echo>
  -            ================================================================
  -             Avalon Excalibur Build System, the Maven Edition:
  -            ================================================================
  -                            !!! WARNING !!!
  -
  -             excalibur is built using ant; the maven build system
  -             is still in development. *DO NOT USE IT* unless you're helping
  -             out with setting that up or testing it.
  -            ================================================================
  +================================================================
  + Avalon Excalibur Build System, the Maven Edition
  +================================================================
  +                !!! WARNING !!!
  +
  + excalibur is built using ant; the maven build system
  + is still in development. *DO NOT USE IT* unless you're helping
  + out with setting that up or testing it.
  +================================================================
           </ant:echo>
       </goal>
   
  @@ -42,7 +42,7 @@
   
       <!-- use forrest for doc generation if requested -->
       <postGoal name="xdoc">
  -        <j:if test="${pom.getProperty('use-forrest')}">
  +        <j:if test="${pom.getProperty('use-forrest') == 'true'}">
               <attainGoal name="forrest:generate"/>
           </j:if>
       </postGoal>
  @@ -203,4 +203,12 @@
               basedir="${pom.build.unitTestSourceDirectory}"/>
       </goal>
   
  +    <!-- ==========================================================
  +          Deployment customization
  +         ========================================================== -->
  +
  +    <goal name="excalibur:deploy"
  +            description="Deploys a release to www.apache.org/dist">
  +        <echo>Not implemented!</echo>
  +    </goal>
   </project>
  
  
  
  1.3       +7 -0      avalon-excalibur/project-common.xml
  
  Index: project-common.xml
  ===================================================================
  RCS file: /home/cvs/avalon-excalibur/project-common.xml,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- project-common.xml	30 May 2003 22:58:25 -0000	1.2
  +++ project-common.xml	7 Jun 2003 12:14:52 -0000	1.3
  @@ -83,6 +83,10 @@
           </dependency>
       </dependencies>
   
  +    <properties>
  +        <use-forrest>true</use-forrest>
  +    </properties>
  +
       <build>
           <nagEmailAddress>dev@avalon.apache.org</nagEmailAddress>
           <sourceDirectory>src/java</sourceDirectory>
  @@ -93,6 +97,9 @@
               <includes>
                   <include>**/*TestCase.java</include>
               </includes>
  +            <excludes>
  +                <exclude>**/Abstract*</exclude>
  +            </excludes>
           </unitTest>
   
           <!-- Resources that are packaged up inside the JAR file -->
  
  
  
  1.1                  avalon-excalibur/maven-template.xml
  
  Index: maven-template.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <project default="java:jar"
      xmlns:j="jelly:core"
      xmlns:ant="jelly:ant">
  
      <!-- include the excalibur-wide custom project properties -->
      <property file="${basedir}/project.properties"/>
      <property file="${basedir}/../project.properties"/>
      <property file="${basedir}/../../project.properties"/>
      <property file="${basedir}/../../../project.properties"/>
      <property file="${basedir}/../../../../project.properties"/>
  
      <!-- include the excalibur-wide custom goal decorators from maven-common.xml -->
      <j:import file="../maven-common.xml" inherit="true"/>
  
  </project>
  
  
  
  1.1                  avalon-excalibur/maven.log
  
  Index: maven.log
  ===================================================================
  2003-06-07 14:13:27,171 INFO  org.apache.maven.plugin.PluginManager - Initializing Plugins!
  2003-06-07 14:13:27,265 INFO  org.apache.maven.plugin.PluginManager - Processing Plugin:
maven-castor-plugin-1.0
  2003-06-07 14:13:27,390 INFO  org.apache.maven.plugin.PluginManager - Processing Plugin:
maven-deploy-plugin-1.1
  2003-06-07 14:13:27,437 INFO  org.apache.maven.plugin.PluginManager - Processing Plugin:
maven-plexus-plugin-0.2
  2003-06-07 14:13:27,453 INFO  org.apache.maven.plugin.PluginManager - Processing Plugin:
maven-sea-plugin-1.0
  2003-06-07 14:13:27,468 INFO  org.apache.maven.plugin.PluginManager - Processing Plugin:
maven-vdoclet-plugin-1.0
  2003-06-07 14:13:27,796 INFO  org.apache.maven.plugin.PluginManager - Finished initializing
Plugins!
  2003-06-07 14:13:32,000 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.ProjectTag
doesn't support the nested "path" element.
  2003-06-07 14:13:32,921 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "tstamp" element.
  2003-06-07 14:13:32,984 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "echo" element.
  2003-06-07 14:13:33,062 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "mkdir" element.
  2003-06-07 14:13:33,062 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "mkdir" element.
  2003-06-07 14:13:33,078 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "mkdir" element.
  2003-06-07 14:13:33,078 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "mkdir" element.
  2003-06-07 14:13:33,093 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "mkdir" element.
  2003-06-07 14:13:33,171 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "copy" element.
  2003-06-07 14:13:33,187 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "echo" element.
  2003-06-07 14:13:33,359 ERROR org.apache.commons.jelly.tags.ant.AntTag - Class com.werken.werkz.jelly.GoalTag
doesn't support the nested "echo" element.
  
  
  
  1.1                  avalon-excalibur/maven.xml
  
  Index: maven.xml
  ===================================================================
  <?xml version="1.0"?>
  
  <project default="excalibur:info"
      xmlns:j="jelly:core"
      xmlns:ant="jelly:ant">
  
      <!-- ==========================================================
            Documentation
           ========================================================== -->
  
      <goal name="excalibur:info"
              description="Build documentation kept right in the buildfile">
  
  <ant:echo>
      ===================================================================
       Avalon Excalibur Build System, the Maven Edition
      ===================================================================
                                !!! WARNING !!!
  
      excalibur is built using ant; the maven build system is still in
      development. *DO NOT USE IT* unless you're helping out with
      setting it up or testing it.
  
      Also note that not all the functionality described here is actually
      in place. This is the "Write Docs First" paradigm, lacking a way to
      write buildfile unit tests ;)
      ===================================================================
  
      Building a single component
      ===========================
  
      Change into the component's subdirectory, and use maven as normal.
      Common usage includes:
  
          maven java:jar      # builds the jar
          maven site          # builds the website, including javadocs
          maven dist          # builds source and binary distributions
  
      Building all components
      =======================
  
      Change into the main excalibur directory, and use maven as normal;
      note not all goals are available. A maven reactor will be started
      to build all components. Common usage includes:
  
          maven java:jar      # builds all jars
          maven site          # builds the website, including javadocs
          maven dist          # builds source and binary distributions
  
  
      Special goals
      =============
  
      These are nonstandard goals available from the main excalibur
      directory:
  
          maven excalibur:info
              # echo the documentation you're reading now
  
          maven excalibur:seed
              # create a new component; see below for more info
  
  
      Creating a distribution
      =======================
  
      All project.xml files normally specify a <version/> ending in
      '-dev'. When building files to upload to www.apache.org/dist,
      you should override this. To do so, pass in an override.version
      property:
  
          maven -Doverride.version=1.3 dist
  
      Now, manually inspect the generated distributions to make sure
      they are correct. Drop them into a few environments (a cocoon
      installation, a phoenix installation, etc) and make sure everything
      still works as normal.
  
      Next, you should sign releases using PGP. See
  
          http://nagoya.apache.org/wiki/apachewiki.cgi?SigningReleases
  
      for documentation on how to do so. This is not an optional step:
      the build will assure further on that there are .asc files for
      every release.
  
      Once you are satisfied that the release is correct, you need to
      upload the file to the official avalon distribution location.
      This requires an SSH account on the daedalus.apache.org
      installation, a working 'ssh' command on your path, and a running
      ssh-agent (like the ssh-agent program that comes with OpenSSH or
      the Pageant utility that comes with Putty) so you do not have to
      enter your SSH key password.
      To upload the files, run the 'excalibur:deploy' target inside
      the component subdirectory, again making sure to override the
      version:
  
          maven -Doverride.version=1.3 excalibur:deploy
  
      If your username on the daedalus.apache.org machine is not the same
      as your local username, you can override it using the
      'maven.username' variable:
  
          maven -Doverride.version=1.3 -Dmaven.username=johndoe excalibur:deploy
  
      In addition to uploading the distributions, this will also result
      in a file named target/announcement-1.3.txt, containing an auto-
      generated announcement for sending to mailing lists. If you want
      to have the announcement sent to dev@avalon.apache.org and
      users@avalon.apache.org automatically, use
      '-Dsend.announce=true':
  
          maven -Doverride.version=1.3 -Dsend.announce=true excalibur:deploy
  
      If this is not an official distribution yet, but a release
      candidate, you will want to override the directory on the server
      where the files are sent to (normally
      /www/www.apache.org/dist/avalon/). To do so, specify the
      'remote.dist.dir' property:
  
          maven -Doverride.version=1.3 -Dremote.dist.dir=~/public_html/release-candidates
excalibur:deploy
  
      Summary:
  
          maven dist -Doverride.version=1.3
              ### now check and test distributions ###
          cd target/distributions
          for i in *.zip; \
              do gpg --output $i.asc --detach-sig --armor $i; \
          done
          cd ../..
          maven -Doverride.version=1.3 \
              -Dsend.announce=true excalibur:deploy
  
      Adding a new component
      ======================
  
      The easiest way to get a new component set up is the
      'excalibur:seed' goal. This will generate a skeleton project for
      you. You need to specify a few properties:
  
          component.name      the human-readable name for your component
          component.id        the artifact id used for your component's
                              build artifacts (jar files, zip files, etc)
          component.dir       the name of the directory to put the
                              component in
          use.forrest         'false' if you want to use the regular
                              maven xdoc plugin rather than the forrest
                              plugin for handling your xdocs
  
      Example:
  
          maven -Dcomponent.name=My-Component \
              -Dcomponent.id=my-component \
              -Dcomponent.dir=mycomponent \
              excalibur:seed
  </ant:echo>
      </goal>
  
      <!-- ==========================================================
            Repository management
           ========================================================== -->
  
      <goal name="excalibur:seed"
              description="Creates a new component. Try excalibur:info for more information">
  
          <!-- argument verification -->
          <j:set var="cname" value="${component.name}"/>
          <j:if test="${empty(cname)}">
              <ant:fail message="Please specify component.name!"/>
          </j:if>
          <j:set var="cid" value="${component.id}"/>
          <j:if test="${empty(cid)}">
              <ant:fail message="Please specify component.id!"/>
          </j:if>
          <j:set var="cdir" value="${component.dir}"/>
          <j:if test="${empty(cdir)}">
              <ant:fail message="Please specify component.dir!"/>
          </j:if>
  
          <!-- argument defaults -->
          <j:if test="${empty(use.forrest)}">
              <j:set var="use.forrest" value="true"/>
          </j:if>
  
          <!-- variables -->
          <ant:tstamp><ant:format property="current.year" pattern="yyyy"/></ant:tstamp>
          <j:set var="inception.year" value="${current.year}"/>
  
          <!-- debug info -->
          <ant:echo>
      Seeding new project with settings:
              component.name = ${component.name}
              component.id   = ${component.id}
              component.dir  = ${component.dir}
              inception.year = ${inception.year}
  
              use.forrest    = ${use.forrest}
          </ant:echo>
  
          <!-- create directory structure -->
          <ant:mkdir dir="${component.dir}"/>
          <ant:mkdir dir="${component.dir}/src"/>
          <ant:mkdir dir="${component.dir}/src/java"/>
          <ant:mkdir dir="${component.dir}/src/test"/>
          <ant:mkdir dir="${component.dir}/src/xdocs"/>
  
          <!-- create project.xml -->
          <j:file name="${component.dir}/project.xml">
          <j:whitespace xmlns="dummy">
  <project>
      <extend>../project-common.xml</extend>
  
      <name>${component.name}</name>
      <id>${component.name}</id>
      <currentVersion>1.0-dev</currentVersion>
      <inceptionYear>${inception.year}</inceptionYear>
      <shortDescription>Excalibur's ${component.name} component</shortDescription>
      <description>
  This project doesn't have a description yet. Edit the file
  
          ${component.dir}/project.xml
  
  to add one.
      </description>
  
  </project>
          </j:whitespace>
          </j:file>
  
          <!-- create maven.xml -->
          <ant:copy file="maven-template.xml" tofile="${component.dir}/maven.xml"/>
  
          <!-- create project.properties -->
          <ant:echo file="${component.dir}/project.properties">
  # -------------------------------------------------------------------
  # P R O J E C T  P R O P E R T I E S
  # -------------------------------------------------------------------
  maven.repo.remote = http://lsd.student.utwente.nl/repository,http://www.apache.org/dist/avalon,http://www.ibiblio.org/maven
          </ant:echo>
  
          <!-- create src/xdocs/tabs.xml -->
          <j:if test="${use.forrest}">
              <j:file name="${component.dir}/src/xdocs/tabs.xml">
              <j:whitespace xmlns="dummy">
  <tabs software="${component.name}"
      title="${component.name}">
  
      <tab label="Avalon Home" href="http://avalon.apache.org/"/>
      <tab label="Framework" href="http://avalon.apache.org/framework/"/>
      <tab label="Components" href="http://avalon.apache.org/components/"/>
      <tab label="Phoenix" href="http://avalon.apache.org/phoenix/"/>
      <tab label="SECA" href="http://avalon.apache.org/seca/"/>
  
  </tabs>
              </j:whitespace>
              </j:file>
          </j:if>
  
          <!-- create src/xdocs/book.xml -->
          <j:if test="${use.forrest}">
              <j:file name="${component.dir}/src/xdocs/book.xml">
              <j:whitespace xmlns="dummy">
  <book software="${component.name}" title="${component.name}" copyright="${inception.year}
The Apache Software Foundation">
  
      <menu label="Essentials">
          <menu-item label="Overview" href="index.html"/>
          <menu-item label="Download" href="http://avalon.apache.org/download.cgi"/>
          <menu-item label="API Docs" href="http://avalon.apache.org/excalibur/${component.dir}/apidocs/"/>
          <menu-item label="CVS Access" href="cvs-usage.html"/>
      </menu>
  
      <menu label="Reports">
          <menu-item href="maven-reports.html" label="Maven-generated reports"/>
          <menu-item href="project-info.html" label="Maven-generated project info"/>
      </menu>
  </book>
              </j:whitespace>
              </j:file>
          </j:if>
  
          <!-- create .cvsignore -->
          <ant:echo file="${component.dir}/.cvsignore">
  target
  *.log
  *.ipr
  *.iws
  *.classpath
  *.project
          </ant:echo>
      </goal>
  
  </project>
  
  
  1.1                  avalon-excalibur/project.properties
  
  Index: project.properties
  ===================================================================
  # -------------------------------------------------------------------
  # P R O J E C T  P R O P E R T I E S
  # -------------------------------------------------------------------
  maven.repo.remote = http://lsd.student.utwente.nl/repository,http://www.apache.org/dist/avalon,http://www.ibiblio.org/maven
  
  
  
  1.1                  avalon-excalibur/project.xml
  
  Index: project.xml
  ===================================================================
  <?xml version="1.0" encoding="UTF-8"?>
  
  <project>
      <extend>./project-common.xml</extend>
  
      <name>Avalon-Excalibur</name>
      <id>excalibur-all</id>
      <currentVersion>4.1-dev</currentVersion>
      <inceptionYear>1997</inceptionYear>
      <shortDescription>Avalon Excalibur Component Repository</shortDescription>
      <description>
  Excalibur is a collection of often-needed reusable components. It includes
  tools for threading, pooling, datasources, command-line interface (CLI)
  option parsing and more.
  
  It also contains several containers and libraries that aid in building
  containers.
      </description>
  
      <build>
          <sourceDirectory></sourceDirectory>
          <unitTestSourceDirectory></unitTestSourceDirectory>
      </build>
  
  </project>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@avalon.apache.org
For additional commands, e-mail: cvs-help@avalon.apache.org


Mime
View raw message