123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- ------
- Writing a Consumer Plugin
- ------
- Maria Odea Ching
- ------
- 23 Nov 2007
- ------
-
- ~~ Licensed to the Apache Software Foundation (ASF) under one
- ~~ or more contributor license agreements. See the NOTICE file
- ~~ distributed with this work for additional information
- ~~ regarding copyright ownership. The ASF licenses this file
- ~~ to you under the Apache License, Version 2.0 (the
- ~~ "License"); you may not use this file except in compliance
- ~~ with the License. You may obtain a copy of the License at
- ~~
- ~~ http://www.apache.org/licenses/LICENSE-2.0
- ~~
- ~~ Unless required by applicable law or agreed to in writing,
- ~~ software distributed under the License is distributed on an
- ~~ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- ~~ KIND, either express or implied. See the License for the
- ~~ specific language governing permissions and limitations
- ~~ under the License.
-
- ~~ NOTE: For help with the syntax of this file, see:
- ~~ http://maven.apache.org/guides/mini/guide-apt-format.html
-
- Writing a Consumer Plugin
-
- For a sample custom consumer, you can checkout the archiva-consumer-plugin at the archiva sandbox in the SVN repository:
-
- +----+
- http://svn.apache.org/repos/asf/maven/archiva/sandbox/archiva-consumer-plugin
- +----+
-
- 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.
-
- +----+
- Ex.
- @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer"
- role-hint="discover-new-artifact"
- instantiation-strategy="per-lookup"
-
- where,
- 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.
-
- +----+
- <plugin>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-maven-plugin</artifactId>
- <version>1.3.5</version>
- <executions>
- <execution>
- <id>generate</id>
- <goals>
- <goal>descriptor</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- +----+
-
- [[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.
|