Writing a Consumer Plugin

For a sample custom consumer, you can checkout the archiva-consumer-plugin at the archiva sandbox in the SVN repository:


Below are the steps on how to create a custom repository consumer and plug it in Archiva:

  1. Create a project for your component.
  2. Declare your class or in this case, consumer as a component as shown in the example below. This should be put at the class level.
    @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
      role: the interface that your class implements
      role-hint: the lookup name of the component (your class/consumer)
      instantiation-strategy: how your class will be instantiated
  3. Make sure to add the snippet below in the build section of the project's pom. This is needed to generate the components.xml.
  4. Package your project by executing 'mvn clean package'
  5. Let's say you are using the apache-archiva-1.0-bin.tar.gz to run Archiva. Unpack the binaries then go to bin/linux-x86-32/ (assuming you are running on Linux), then execute './run.sh console'. Then stop or shutdown Archiva after it started. (This is necessary to unpack the war file.)
  6. Copy the jar file you created in step 4 in apache-archiva-1.0/apps/archiva/webapp/lib/
  7. Add the necessary configurations in archiva.xml (in this case, add 'discover-new-artifact' as a knownContentConsumer)
  8. Start up Archiva again.