blob: 7e2d896cc39b9b69463818912bb81785a7b254a9 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
|
------
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/sandbox/trunk/archiva/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.
|