2 Replies Latest reply on May 5, 2005 12:38 PM by ryan.campbell

    project structure and build descriptors

    starksm64

      I have been through the current build-reference.html doc and I'm finding an overall description of the build structure of a project in terms of what the directory structure needs to be, what types of build descriptors there are, what are there content models etc. to be missing. So I want a more top down doc that describes this. Some current issues:

      - Why is all of the tools module being used? This is largely legacy stuff and includes extraneous stuff like cruisecontrol configuration. The jbossbuild tools could just be an element in repository.jboss.comwith a minimal jbossbuild/bootstrap cvs module to kickstart a project?

      - The use of the ant project document structure for the different types of build descriptors (build.xml, component-info.xml, etc.) gets us into a problem with non-validatable documents. I'm sure this is due to leveraging the ant import mechanism, but ant does have a notion of namespaces, but I'm not sure if this applies to the project element on imported references. Have we looked into that? Ideally each different build descriptor type would have its own xsd. If we can't actually do this, we at least need xsds for the various build descriptors as a reference to what the allowed content models are.

      I want to help get this stuff documented as a first time user of the build system to ensure we get it adopted as soon as possible.

        • 1. Re: project structure and build descriptors
          starksm64

          So its not an issue to have the imported project using whatever xsd they want, at least for a simple example:

          build.xml:
          <project name="Top" default="echo">
           <import file="subproject.xml" />
           <target name="echo">
           <echo message="top echo" />
           <antcall target="subproject-echo" />
           </target>
          </project>
          
          subproject.xml
          <project
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:noNamespaceSchemaLocation="subproject.xsd">
           <target name="subproject-echo">
           <echo message="echo from subproject" />
           </target>
          </project>
          



          • 2. Re: project structure and build descriptors

             

            "scott.stark@jboss.org" wrote:
            The jbossbuild tools could just be an element in repository.jboss.com with a minimal jbossbuild/bootstrap cvs module to kickstart a project?


            Yes, I agree. There are two options here:

            1) Make it a cvs module as you suggest. The advantage is that we have this file in one place.

            2) Add a bootstrap.xml to each toplevel project's cvs module. The advantage to this is that a project on HEAD can upgrade to a new jbossbuild version at their own pace, instead of being forced to upgrade because another module did so. So the checkout/build cycle would be:

            cvs co jbossas
            cd jbossas
            ant -f bootstrap.xml
            ant synchronize
            ant build

            http://jira.jboss.com/jira/browse/JBBUILD-63