3 Replies Latest reply on Mar 25, 2005 5:37 PM by Adrian Brock

    Non-Archive Artifacts

    ryan.campbell Expert

      We have several different types of non-archive artifacts which need to be supported - dtds, service.xml descriptors, etc. These need to be included in the release structure outside of any archive.

      <resource id="exception-processor"/>
      
      <artifactdef artifact="sqlexception-service.xml">
       <include input="exception-processor">
       <include pattern="sqlexception-service.xml">
       </include>
      </artifactdef>
      


      I think we can make this less verbose. If I were following the existing design, I think I would have to copy it to somewhere like output/lib, assuming I had the following:

      <artifacttype id="xml" outputtype="lib"/>


      and then in the build targetdef:
      <xml>
       <mkdir dir="@{parentDir}"/>
       <copy todir="@{parentDir}">
       <filesets/>
       </copy>
       </xml>


      So the toplevel build can find the file in output/lib instead of output/resources/exception-processor.

       <artifact id="sqlexception-service.xml"/>
      


      I suppose the downsides to this approach are:

      1. No grouping of many artifacts, so each file must be listed as a seperate artifact element. I might like to have an artifact like server.dtds that allows me to treat *.dtd as a group.
      2. We are "unnecissarily" copying files from output/resources/something to output/lib.


        • 1. Re: Non-Archive Artifacts
          Adrian Brock Master

          Why can't you just release files from output/resources, output/etc, output/dtd?
          As long as the artificats are included in the same structure inside the repository
          I don't see a problem?

          • 2. Re: Non-Archive Artifacts
            ryan.campbell Expert

            The problem is the top level build will need to know where in output/resources to look for sqlexception-service.xml. In this case, it is under output/resources/exception-processor/sqlexception-service.xml.

            This would also work:

             <artifact id="sqlexception-service.xml" outputpath="resources/exception-processor" release="deploy"/>
            


            Perhaps the toplevel build needs to parse each component build to gather details like this?

            • 3. Re: Non-Archive Artifacts
              Adrian Brock Master

              Yes, I added the ability to tell the toplevel build that a resource was not in the
              standard location for slide:

               <component id="apache-slide">
               <artifact id="webdavlib.jar" release="lib" outputpath="client/lib"/>
               </component>
              


              I wouldn't worry about it too much. These are legacy details of an untidy
              build due to a lack of standards. It can be fixed later.