pompompom 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +5 -0
- data/Gemfile +11 -0
- data/LICENSE +20 -0
- data/README.mdown +32 -0
- data/Rakefile +7 -0
- data/TODO +0 -0
- data/bin/pompompom +17 -0
- data/lib/pom_pom_pom.rb +1 -0
- data/lib/pompompom/cli.rb +87 -0
- data/lib/pompompom/dependency.rb +55 -0
- data/lib/pompompom/downloader.rb +15 -0
- data/lib/pompompom/metadata.rb +26 -0
- data/lib/pompompom/pom.rb +234 -0
- data/lib/pompompom/resolver.rb +149 -0
- data/lib/pompompom/url_builder.rb +37 -0
- data/lib/pompompom.rb +10 -0
- data/pompompom.gemspec +116 -0
- data/spec/pompompom/cli_spec.rb +93 -0
- data/spec/pompompom/dependency_spec.rb +144 -0
- data/spec/pompompom/metadata_spec.rb +38 -0
- data/spec/pompompom/pom_spec.rb +221 -0
- data/spec/pompompom/resolver_spec.rb +205 -0
- data/spec/pompompom/url_builders_shared.rb +33 -0
- data/spec/resources/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.jar +0 -0
- data/spec/resources/repository/aopalliance/aopalliance/1.0/aopalliance-1.0.pom +15 -0
- data/spec/resources/repository/aopalliance/aopalliance/maven-metadata.xml +5 -0
- data/spec/resources/repository/com/example/test/8.8/test-8.8.jar +0 -0
- data/spec/resources/repository/com/example/test/8.8/test-8.8.pom +11 -0
- data/spec/resources/repository/com/example/test/9.9/test-9.9.jar +0 -0
- data/spec/resources/repository/com/example/test/9.9/test-9.9.pom +11 -0
- data/spec/resources/repository/com/example/test/maven-metadata.xml +11 -0
- data/spec/resources/repository/com/example/test-abc/1.0/test-abc-1.0.jar +0 -0
- data/spec/resources/repository/com/example/test-abc/1.0/test-abc-1.0.pom +19 -0
- data/spec/resources/repository/com/example/test-abc/maven-metadata.xml +13 -0
- data/spec/resources/repository/com/example/test-child/1.0/test-child-1.0.pom +16 -0
- data/spec/resources/repository/com/example/test-def/1.0/test-def-1.0.jar +0 -0
- data/spec/resources/repository/com/example/test-def/1.0/test-def-1.0.pom +19 -0
- data/spec/resources/repository/com/example/test-exclusions/1.0/test-exclusions-1.0.jar +1 -0
- data/spec/resources/repository/com/example/test-exclusions/1.0/test-exclusions-1.0.pom +25 -0
- data/spec/resources/repository/com/example/test-optional/1.0/test-optional-1.0.jar +1 -0
- data/spec/resources/repository/com/example/test-optional/1.0/test-optional-1.0.pom +20 -0
- data/spec/resources/repository/com/example/test-parent/1.0/test-parent-1.0.pom +16 -0
- data/spec/resources/repository/com/google/google/1/google-1.pom +37 -0
- data/spec/resources/repository/com/google/inject/guice/2.0/guice-2.0.jar +1 -0
- data/spec/resources/repository/com/google/inject/guice/2.0/guice-2.0.pom +20 -0
- data/spec/resources/repository/com/google/inject/guice-parent/2.0/guice-parent-2.0.pom +70 -0
- data/spec/resources/repository/com/rabbitmq/amqp-client/1.8.0/amqp-client-1.8.0.jar +1 -0
- data/spec/resources/repository/com/rabbitmq/amqp-client/1.8.0/amqp-client-1.8.0.pom +98 -0
- data/spec/resources/repository/commons-cli/commons-cli/1.1/commons-cli-1.1.jar +1 -0
- data/spec/resources/repository/commons-cli/commons-cli/1.1/commons-cli-1.1.pom +165 -0
- data/spec/resources/repository/commons-io/commons-io/1.2/commons-io-1.2.jar +1 -0
- data/spec/resources/repository/commons-io/commons-io/1.2/commons-io-1.2.pom +235 -0
- data/spec/resources/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.jar +0 -0
- data/spec/resources/repository/javax/servlet/servlet-api/2.5/servlet-api-2.5.pom +6 -0
- data/spec/resources/repository/net/iconara/pompompom/1.0/pompompom-1.0.jar +0 -0
- data/spec/resources/repository/net/iconara/pompompom/1.0/pompompom-1.0.pom +11 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-continuation/7.1.4.v20100610/jetty-continuation-7.1.4.v20100610.pom +73 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-http/7.1.4.v20100610/jetty-http-7.1.4.v20100610.pom +73 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-io/7.1.4.v20100610/jetty-io-7.1.4.v20100610.pom +62 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-parent/15/jetty-parent-15.pom +419 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-project/7.1.4.v20100610/jetty-project-7.1.4.v20100610.pom +368 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-server/7.1.4.v20100610/jetty-server-7.1.4.v20100610.jar +0 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-server/7.1.4.v20100610/jetty-server-7.1.4.v20100610.pom +101 -0
- data/spec/resources/repository/org/eclipse/jetty/jetty-util/7.1.4.v20100610/jetty-util-7.1.4.v20100610.pom +80 -0
- data/spec/spec_helper.rb +5 -0
- data/tasks/gem.rake +18 -0
- data/tasks/rdoc.rake +13 -0
- data/tasks/spec.rake +17 -0
- metadata +142 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
require File.expand_path('../../spec_helper', __FILE__)
|
|
2
|
+
require 'tmpdir'
|
|
3
|
+
require 'fileutils'
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
module PomPomPom
|
|
7
|
+
describe Resolver do
|
|
8
|
+
before do
|
|
9
|
+
@repository_path = File.expand_path('../../resources/repository', __FILE__)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
describe '#download!' do
|
|
13
|
+
before do
|
|
14
|
+
@tmp_dir = File.join(Dir.tmpdir, 'pompompom')
|
|
15
|
+
FileUtils.rm_rf(@tmp_dir)
|
|
16
|
+
end
|
|
17
|
+
|
|
18
|
+
after do
|
|
19
|
+
FileUtils.rm_rf(@tmp_dir)
|
|
20
|
+
end
|
|
21
|
+
|
|
22
|
+
context 'setup' do
|
|
23
|
+
before do
|
|
24
|
+
@dependency = Dependency.new('com.rabbitmq', 'amqp-client', '1.8.0')
|
|
25
|
+
@resolver = Resolver.new([@repository_path], :downloader => FilesystemDownloader.new)
|
|
26
|
+
end
|
|
27
|
+
|
|
28
|
+
it 'creates the target directory' do
|
|
29
|
+
@resolver.download!(@tmp_dir, true, @dependency)
|
|
30
|
+
File.exists?(@tmp_dir).should be_true
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
it 'does not attempt to create the target directory if it already exists' do
|
|
34
|
+
Dir.mkdir(@tmp_dir)
|
|
35
|
+
expect { @resolver.download!(@tmp_dir, true, @dependency) }.to_not raise_error
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
it 'complains if the target directory exists but is not a directory' do
|
|
39
|
+
FileUtils.touch(@tmp_dir)
|
|
40
|
+
expect { @resolver.download!(@tmp_dir, true, @dependency) }.to raise_error('Cannot create target directory because it already exists (but is not a directory)')
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
context 'resolving & downloading' do
|
|
45
|
+
before do
|
|
46
|
+
@dependency = Dependency.new('com.rabbitmq', 'amqp-client', '1.8.0')
|
|
47
|
+
@resolver = Resolver.new([@repository_path], :downloader => FilesystemDownloader.new)
|
|
48
|
+
@resolver.download!(@tmp_dir, true, @dependency)
|
|
49
|
+
end
|
|
50
|
+
|
|
51
|
+
%w(commons-cli-1.1 commons-io-1.2 amqp-client-1.8.0).each do |lib|
|
|
52
|
+
it "downloads #{lib}.jar" do
|
|
53
|
+
file = @tmp_dir + '/' + lib + '.jar'
|
|
54
|
+
IO.read(file).chomp.should == lib
|
|
55
|
+
end
|
|
56
|
+
end
|
|
57
|
+
end
|
|
58
|
+
|
|
59
|
+
context 'with exclusions' do
|
|
60
|
+
before do
|
|
61
|
+
@dependency = Dependency.new('com.example', 'test-exclusions', '1.0')
|
|
62
|
+
@resolver = Resolver.new([@repository_path], :downloader => FilesystemDownloader.new)
|
|
63
|
+
@resolver.download!(@tmp_dir, true, @dependency)
|
|
64
|
+
end
|
|
65
|
+
|
|
66
|
+
it 'honors exclusions' do
|
|
67
|
+
files = Dir[@tmp_dir + '/*.jar'].map { |f| File.basename(f) }.sort
|
|
68
|
+
files.should == %w(amqp-client-1.8.0.jar commons-io-1.2.jar test-exclusions-1.0.jar)
|
|
69
|
+
end
|
|
70
|
+
end
|
|
71
|
+
|
|
72
|
+
context 'with optionals' do
|
|
73
|
+
before do
|
|
74
|
+
@dependency = Dependency.new('com.example', 'test-optional', '1.0')
|
|
75
|
+
@resolver = Resolver.new([@repository_path], :downloader => FilesystemDownloader.new)
|
|
76
|
+
@resolver.download!(@tmp_dir, true, @dependency)
|
|
77
|
+
end
|
|
78
|
+
|
|
79
|
+
it 'doesn\'t download optional dependencies' do
|
|
80
|
+
files = Dir[@tmp_dir + '/*.jar'].map { |f| File.basename(f) }.sort
|
|
81
|
+
files.should == %w(test-optional-1.0.jar)
|
|
82
|
+
end
|
|
83
|
+
end
|
|
84
|
+
|
|
85
|
+
context 'logging' do
|
|
86
|
+
before do
|
|
87
|
+
@dependency = Dependency.new('com.rabbitmq', 'amqp-client', '1.8.0')
|
|
88
|
+
@logger = double()
|
|
89
|
+
@resolver = Resolver.new([@repository_path], :logger => @logger, :downloader => FilesystemDownloader.new)
|
|
90
|
+
end
|
|
91
|
+
|
|
92
|
+
it 'logs each downloaded URL' do
|
|
93
|
+
@logger.should_receive(:debug).with(%(Loading POM from "#{@repository_path}/com/rabbitmq/amqp-client/1.8.0/amqp-client-1.8.0.pom"))
|
|
94
|
+
@logger.should_receive(:debug).with(%(Loading JAR from "#{@repository_path}/com/rabbitmq/amqp-client/1.8.0/amqp-client-1.8.0.jar"))
|
|
95
|
+
@logger.should_receive(:debug).with(%(Loading POM from "#{@repository_path}/commons-cli/commons-cli/1.1/commons-cli-1.1.pom"))
|
|
96
|
+
@logger.should_receive(:debug).with(%(Loading JAR from "#{@repository_path}/commons-cli/commons-cli/1.1/commons-cli-1.1.jar"))
|
|
97
|
+
@logger.should_receive(:debug).with(%(Loading POM from "#{@repository_path}/commons-io/commons-io/1.2/commons-io-1.2.pom"))
|
|
98
|
+
@logger.should_receive(:debug).with(%(Loading JAR from "#{@repository_path}/commons-io/commons-io/1.2/commons-io-1.2.jar"))
|
|
99
|
+
@resolver.download!(@tmp_dir, true, @dependency)
|
|
100
|
+
end
|
|
101
|
+
end
|
|
102
|
+
|
|
103
|
+
it 'raises an error if a dependency cannot be met' do
|
|
104
|
+
r = Resolver.new([@repository_path], :downloader => FilesystemDownloader.new)
|
|
105
|
+
expect { r.download!(@tmp_dir, true, Dependency.new('foo.bar', 'baz', '3.1.4')) }.to raise_error(Resolver::DependencyNotFoundError)
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
it 'raises an error if no repositories are given' do
|
|
109
|
+
expect { Resolver.new([]) }.to raise_error(ArgumentError)
|
|
110
|
+
end
|
|
111
|
+
end
|
|
112
|
+
|
|
113
|
+
describe '#find_transitive_dependencies' do
|
|
114
|
+
before do
|
|
115
|
+
@resolver = Resolver.new([@repository_path])
|
|
116
|
+
end
|
|
117
|
+
|
|
118
|
+
it 'returns a list of transitive dependencies' do
|
|
119
|
+
all = @resolver.find_transitive_dependencies(Dependency.new('com.rabbitmq', 'amqp-client', '1.8.0'))
|
|
120
|
+
all_coordinates = all.map(&:to_dependency).map(&:to_s)
|
|
121
|
+
all_coordinates.should have(3).items
|
|
122
|
+
all_coordinates.should include('com.rabbitmq:amqp-client:1.8.0')
|
|
123
|
+
all_coordinates.should include('commons-io:commons-io:1.2')
|
|
124
|
+
all_coordinates.should include('commons-cli:commons-cli:1.1')
|
|
125
|
+
end
|
|
126
|
+
|
|
127
|
+
it 'returns a unique list of all transitive dependencies' do
|
|
128
|
+
all = @resolver.find_transitive_dependencies(
|
|
129
|
+
Dependency.new('com.rabbitmq', 'amqp-client', '1.8.0'),
|
|
130
|
+
Dependency.new('commons-cli', 'commons-cli', '1.1')
|
|
131
|
+
)
|
|
132
|
+
all_coordinates = all.map(&:to_dependency).map(&:to_s)
|
|
133
|
+
all_coordinates.should have(3).items
|
|
134
|
+
all_coordinates.should include('com.rabbitmq:amqp-client:1.8.0')
|
|
135
|
+
all_coordinates.should include('commons-io:commons-io:1.2')
|
|
136
|
+
all_coordinates.should include('commons-cli:commons-cli:1.1')
|
|
137
|
+
end
|
|
138
|
+
|
|
139
|
+
context 'with multiple versions' do
|
|
140
|
+
before do
|
|
141
|
+
@logger = stub(:debug => nil, :info => nil, :warn => nil)
|
|
142
|
+
@dependencies = %w(com.example:test-abc:1.0 com.example:test-def:1.0).map { |d| Dependency.parse(d) }
|
|
143
|
+
@resolver = Resolver.new([@repository_path], :downloader => FilesystemDownloader.new, :logger => @logger)
|
|
144
|
+
end
|
|
145
|
+
|
|
146
|
+
it 'selects the newest dependency if more than one of the same are found' do
|
|
147
|
+
@all_dependencies = @resolver.find_transitive_dependencies(*@dependencies)
|
|
148
|
+
@all_dependencies.map(&:to_s).should include('com.example:test:9.9')
|
|
149
|
+
@all_dependencies.map(&:to_s).should_not include('com.example:test:8.8')
|
|
150
|
+
end
|
|
151
|
+
|
|
152
|
+
it 'determines the newest if no version was specified' do
|
|
153
|
+
@all_dependencies = @resolver.find_transitive_dependencies(Dependency.parse('com.google.inject:guice:2.0'))
|
|
154
|
+
@all_dependencies.map(&:to_s).should include('aopalliance:aopalliance:1.0')
|
|
155
|
+
end
|
|
156
|
+
|
|
157
|
+
it 'warns if dependencies on multiple versions of an artifact are found' do
|
|
158
|
+
@logger.should_receive(:warn).with('Warning: multiple versions of com.example:test were required, using the newest required version (9.9)')
|
|
159
|
+
@resolver.find_transitive_dependencies(*@dependencies)
|
|
160
|
+
end
|
|
161
|
+
end
|
|
162
|
+
|
|
163
|
+
context 'artifacts with parents and dependency management' do
|
|
164
|
+
before do
|
|
165
|
+
@child = File.join(@repository_path, 'com', 'google', 'inject', 'guice', '2.0', 'guice-2.0.pom')
|
|
166
|
+
@parent = File.join(@repository_path, 'com', 'google', 'inject', 'guice-parent', '2.0', 'guice-parent-2.0.pom')
|
|
167
|
+
@grandparent = File.join(@repository_path, 'com', 'google', 'google', '1', 'google-1.pom')
|
|
168
|
+
@other_dependency = File.join(@repository_path, 'aopalliance', 'aopalliance', '1.0', 'aopalliance-1.0.pom')
|
|
169
|
+
|
|
170
|
+
@downloader = double()
|
|
171
|
+
@downloader.stub(:get).with(@child).and_return(File.read(@child))
|
|
172
|
+
@downloader.stub(:get).with(@parent).and_return(File.read(@parent))
|
|
173
|
+
@downloader.stub(:get).with(@grandparent).and_return(File.read(@grandparent))
|
|
174
|
+
@downloader.stub(:get).with(@other_dependency).and_return(File.read(@other_dependency))
|
|
175
|
+
|
|
176
|
+
@dependency = Dependency.parse('com.google.inject:guice:2.0')
|
|
177
|
+
|
|
178
|
+
@resolver = Resolver.new([@repository_path], :downloader => @downloader)
|
|
179
|
+
end
|
|
180
|
+
|
|
181
|
+
it 'downloads the parent artifact POM and merges it with the child (and thus discovers the required version of a dependency)' do
|
|
182
|
+
@dependencies = @resolver.find_transitive_dependencies(@dependency)
|
|
183
|
+
@dependencies.map(&:to_s).should include('aopalliance:aopalliance:1.0')
|
|
184
|
+
end
|
|
185
|
+
|
|
186
|
+
it 'doesn\'t include parent dependencies in the list of transitive dependencies' do
|
|
187
|
+
@dependencies = @resolver.find_transitive_dependencies(@dependency)
|
|
188
|
+
@dependencies.should have(2).items
|
|
189
|
+
@dependencies.map(&:to_s).should include('aopalliance:aopalliance:1.0')
|
|
190
|
+
@dependencies.map(&:to_s).should include('com.google.inject:guice:2.0')
|
|
191
|
+
end
|
|
192
|
+
end
|
|
193
|
+
|
|
194
|
+
context 'artifacts with properties resolvable only with parent information' do
|
|
195
|
+
it 'resolves all properties' do
|
|
196
|
+
@logger = stub(:debug => nil, :info => nil, :warn => nil)
|
|
197
|
+
@dependency = Dependency.parse('org.eclipse.jetty:jetty-server:7.1.4.v20100610')
|
|
198
|
+
@resolver = Resolver.new([@repository_path], :downloader => FilesystemDownloader.new, :logger => @logger)
|
|
199
|
+
@all_dependencies = @resolver.find_transitive_dependencies(@dependency)
|
|
200
|
+
@all_dependencies.find { |p| p.artifact_id == 'jetty-server' }.url.should == 'http://www.eclipse.org/jetty'
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
end
|
|
204
|
+
end
|
|
205
|
+
end
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
shared_examples_for 'an URL builder' do
|
|
2
|
+
describe '#jar_url' do
|
|
3
|
+
it 'returns the URL for a JAR given a repository base URL' do
|
|
4
|
+
url = @url_builder.jar_url('http://example.com')
|
|
5
|
+
url.should == "http://example.com/net/iconara/pompompom/1.0/pompompom-1.0.jar"
|
|
6
|
+
end
|
|
7
|
+
|
|
8
|
+
it 'returns the URL for a JAR given a repository base URL (when repository URL ends with "/")' do
|
|
9
|
+
url = @url_builder.jar_url('http://example.com/')
|
|
10
|
+
url.should == "http://example.com/net/iconara/pompompom/1.0/pompompom-1.0.jar"
|
|
11
|
+
end
|
|
12
|
+
end
|
|
13
|
+
|
|
14
|
+
describe '#pom_url' do
|
|
15
|
+
it 'returns the URL for a POM given a repository base URL' do
|
|
16
|
+
url = @url_builder.pom_url('http://example.com')
|
|
17
|
+
url.should == "http://example.com/net/iconara/pompompom/1.0/pompompom-1.0.pom"
|
|
18
|
+
end
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
describe '#jar_file_name' do
|
|
22
|
+
it 'returns <artifact_id>-<version>.jar' do
|
|
23
|
+
@url_builder.jar_file_name.should == 'pompompom-1.0.jar'
|
|
24
|
+
end
|
|
25
|
+
end
|
|
26
|
+
|
|
27
|
+
describe '#metadata_url' do
|
|
28
|
+
it 'returns the URL for the artifact metadata file' do
|
|
29
|
+
url = @url_builder.metadata_url('http://example.com')
|
|
30
|
+
url.should == "http://example.com/net/iconara/pompompom/maven-metadata.xml"
|
|
31
|
+
end
|
|
32
|
+
end
|
|
33
|
+
end
|
|
File without changes
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
<project>
|
|
2
|
+
<modelVersion>4.0.0</modelVersion>
|
|
3
|
+
<groupId>aopalliance</groupId>
|
|
4
|
+
<artifactId>aopalliance</artifactId>
|
|
5
|
+
<name>AOP alliance</name>
|
|
6
|
+
<version>1.0</version>
|
|
7
|
+
<description>AOP Alliance</description>
|
|
8
|
+
<url>http://aopalliance.sourceforge.net</url>
|
|
9
|
+
|
|
10
|
+
<licenses>
|
|
11
|
+
<license>
|
|
12
|
+
<name>Public Domain</name>
|
|
13
|
+
</license>
|
|
14
|
+
</licenses>
|
|
15
|
+
</project>
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<project>
|
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
|
4
|
+
<groupId>com.example</groupId>
|
|
5
|
+
<artifactId>test</artifactId>
|
|
6
|
+
<version>8.8</version>
|
|
7
|
+
<packaging>jar</packaging>
|
|
8
|
+
<name>Test POM</name>
|
|
9
|
+
<description>Test POM</description>
|
|
10
|
+
<url>http://www.example.com</url>
|
|
11
|
+
</project>
|
|
File without changes
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<project>
|
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
|
4
|
+
<groupId>com.example</groupId>
|
|
5
|
+
<artifactId>test</artifactId>
|
|
6
|
+
<version>9.9</version>
|
|
7
|
+
<packaging>jar</packaging>
|
|
8
|
+
<name>Test POM</name>
|
|
9
|
+
<description>Test POM</description>
|
|
10
|
+
<url>http://www.example.com</url>
|
|
11
|
+
</project>
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<project>
|
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
|
4
|
+
<groupId>com.example</groupId>
|
|
5
|
+
<artifactId>test-abc</artifactId>
|
|
6
|
+
<version>1.0</version>
|
|
7
|
+
<packaging>jar</packaging>
|
|
8
|
+
<name>Test POM</name>
|
|
9
|
+
<description>Test POM</description>
|
|
10
|
+
<url>http://www.example.com</url>
|
|
11
|
+
|
|
12
|
+
<dependencies>
|
|
13
|
+
<dependency>
|
|
14
|
+
<groupId>com.example</groupId>
|
|
15
|
+
<artifactId>test</artifactId>
|
|
16
|
+
<version>9.9</version>
|
|
17
|
+
</dependency>
|
|
18
|
+
</dependencies>
|
|
19
|
+
</project>
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
<metadata>
|
|
2
|
+
<groupId>com.example</groupId>
|
|
3
|
+
<artifactId>test-abc</artifactId>
|
|
4
|
+
<version>1.1</version>
|
|
5
|
+
<versioning>
|
|
6
|
+
<release>1.0</release>
|
|
7
|
+
<versions>
|
|
8
|
+
<version>0.9</version>
|
|
9
|
+
<version>1.0</version>
|
|
10
|
+
<version>1.1</version>
|
|
11
|
+
</versions>
|
|
12
|
+
</versioning>
|
|
13
|
+
</metadata>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
2
|
+
<modelVersion>4.0.0</modelVersion>
|
|
3
|
+
<parent>
|
|
4
|
+
<groupId>com.example</groupId>
|
|
5
|
+
<artifactId>test-parent</artifactId>
|
|
6
|
+
<version>1.0</version>
|
|
7
|
+
</parent>
|
|
8
|
+
<artifactId>test-child</artifactId>
|
|
9
|
+
<packaging>jar</packaging>
|
|
10
|
+
<dependencies>
|
|
11
|
+
<dependency>
|
|
12
|
+
<groupId>com.example</groupId>
|
|
13
|
+
<artifactId>test</artifactId>
|
|
14
|
+
</dependency>
|
|
15
|
+
</dependencies>
|
|
16
|
+
</project>
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<project>
|
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
|
4
|
+
<groupId>com.example</groupId>
|
|
5
|
+
<artifactId>test-def</artifactId>
|
|
6
|
+
<version>1.0</version>
|
|
7
|
+
<packaging>jar</packaging>
|
|
8
|
+
<name>Test POM</name>
|
|
9
|
+
<description>Test POM</description>
|
|
10
|
+
<url>http://www.example.com</url>
|
|
11
|
+
|
|
12
|
+
<dependencies>
|
|
13
|
+
<dependency>
|
|
14
|
+
<groupId>com.example</groupId>
|
|
15
|
+
<artifactId>test</artifactId>
|
|
16
|
+
<version>8.8</version>
|
|
17
|
+
</dependency>
|
|
18
|
+
</dependencies>
|
|
19
|
+
</project>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
test-exclusions-1.0
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<project>
|
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
|
4
|
+
<groupId>com.example</groupId>
|
|
5
|
+
<artifactId>test-exclusions</artifactId>
|
|
6
|
+
<version>1.0</version>
|
|
7
|
+
<packaging>jar</packaging>
|
|
8
|
+
<name>Test POM</name>
|
|
9
|
+
<description>Test POM</description>
|
|
10
|
+
<url>http://www.example.com</url>
|
|
11
|
+
|
|
12
|
+
<dependencies>
|
|
13
|
+
<dependency>
|
|
14
|
+
<groupId>com.rabbitmq</groupId>
|
|
15
|
+
<artifactId>amqp-client</artifactId>
|
|
16
|
+
<version>1.8.0</version>
|
|
17
|
+
<exclusions>
|
|
18
|
+
<exclusion>
|
|
19
|
+
<groupId>commons-cli</groupId>
|
|
20
|
+
<artifactId>commons-cli</artifactId>
|
|
21
|
+
</exclusion>
|
|
22
|
+
</exclusions>
|
|
23
|
+
</dependency>
|
|
24
|
+
</dependencies>
|
|
25
|
+
</project>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
test-optional-1.0
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<?xml version="1.0"?>
|
|
2
|
+
<project>
|
|
3
|
+
<modelVersion>4.0.0</modelVersion>
|
|
4
|
+
<groupId>com.example</groupId>
|
|
5
|
+
<artifactId>test-optional</artifactId>
|
|
6
|
+
<version>1.0</version>
|
|
7
|
+
<packaging>jar</packaging>
|
|
8
|
+
<name>Test POM</name>
|
|
9
|
+
<description>Test POM</description>
|
|
10
|
+
<url>http://www.example.com</url>
|
|
11
|
+
|
|
12
|
+
<dependencies>
|
|
13
|
+
<dependency>
|
|
14
|
+
<groupId>com.rabbitmq</groupId>
|
|
15
|
+
<artifactId>amqp-client</artifactId>
|
|
16
|
+
<version>1.8.0</version>
|
|
17
|
+
<optional>true</optional>
|
|
18
|
+
</dependency>
|
|
19
|
+
</dependencies>
|
|
20
|
+
</project>
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
2
|
+
<modelVersion>4.0.0</modelVersion>
|
|
3
|
+
<groupId>com.example</groupId>
|
|
4
|
+
<artifactId>test-parent</artifactId>
|
|
5
|
+
<packaging>pom</packaging>
|
|
6
|
+
<version>1.0</version>
|
|
7
|
+
<dependencyManagement>
|
|
8
|
+
<dependencies>
|
|
9
|
+
<dependency>
|
|
10
|
+
<groupId>com.example</groupId>
|
|
11
|
+
<artifactId>test</artifactId>
|
|
12
|
+
<version>8.8</version>
|
|
13
|
+
</dependency>
|
|
14
|
+
</dependencies>
|
|
15
|
+
</dependencyManagement>
|
|
16
|
+
</project>
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
|
2
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
3
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
4
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
5
|
+
<modelVersion>4.0.0</modelVersion>
|
|
6
|
+
<groupId>com.google</groupId>
|
|
7
|
+
<artifactId>google</artifactId>
|
|
8
|
+
<version>1</version>
|
|
9
|
+
<name>Google</name>
|
|
10
|
+
<description>Internally developed code released as open source.</description>
|
|
11
|
+
<packaging>pom</packaging>
|
|
12
|
+
<organization>
|
|
13
|
+
<name>Google</name>
|
|
14
|
+
<url>http://www.google.com/</url>
|
|
15
|
+
</organization>
|
|
16
|
+
<url>http://code.google.com/hosting/projects.html</url>
|
|
17
|
+
<licenses>
|
|
18
|
+
<license>
|
|
19
|
+
<name>The Apache Software License, Version 2.0</name>
|
|
20
|
+
<url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
|
|
21
|
+
<distribution>repo</distribution>
|
|
22
|
+
</license>
|
|
23
|
+
</licenses>
|
|
24
|
+
<distributionManagement>
|
|
25
|
+
<repository>
|
|
26
|
+
<id>google-maven-repository</id>
|
|
27
|
+
<name>Google Maven Repository</name>
|
|
28
|
+
<url>dav:https://google-maven-repository.googlecode.com/svn/repository/</url>
|
|
29
|
+
</repository>
|
|
30
|
+
<snapshotRepository>
|
|
31
|
+
<id>google-maven-snapshot-repository</id>
|
|
32
|
+
<name>Google Maven Snapshot Repository</name>
|
|
33
|
+
<url>dav:https://google-maven-repository.googlecode.com/svn/snapshot-repository/</url>
|
|
34
|
+
<uniqueVersion>true</uniqueVersion>
|
|
35
|
+
</snapshotRepository>
|
|
36
|
+
</distributionManagement>
|
|
37
|
+
</project>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
guice-2.0.pom
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
2
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
3
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
4
|
+
<modelVersion>4.0.0</modelVersion>
|
|
5
|
+
<parent>
|
|
6
|
+
<groupId>com.google.inject</groupId>
|
|
7
|
+
<artifactId>guice-parent</artifactId>
|
|
8
|
+
<version>2.0</version>
|
|
9
|
+
</parent>
|
|
10
|
+
<artifactId>guice</artifactId>
|
|
11
|
+
<packaging>jar</packaging>
|
|
12
|
+
<!-- Note: this pom is for dependency management only. It will not build the project -->
|
|
13
|
+
<dependencies>
|
|
14
|
+
<!-- CGLib is not listed because it has been repackaged with JarJar -->
|
|
15
|
+
<dependency>
|
|
16
|
+
<groupId>aopalliance</groupId>
|
|
17
|
+
<artifactId>aopalliance</artifactId>
|
|
18
|
+
</dependency>
|
|
19
|
+
</dependencies>
|
|
20
|
+
</project>
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
<project xmlns="http://maven.apache.org/POM/4.0.0"
|
|
2
|
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
|
3
|
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
|
4
|
+
<modelVersion>4.0.0</modelVersion>
|
|
5
|
+
<parent>
|
|
6
|
+
<groupId>com.google</groupId>
|
|
7
|
+
<artifactId>google</artifactId>
|
|
8
|
+
<version>1</version>
|
|
9
|
+
</parent>
|
|
10
|
+
<groupId>com.google.inject</groupId>
|
|
11
|
+
<artifactId>guice-parent</artifactId>
|
|
12
|
+
<packaging>pom</packaging>
|
|
13
|
+
<version>2.0</version>
|
|
14
|
+
<name>Google Guice</name>
|
|
15
|
+
<description>Guice (pronounced 'juice') is a lightweight dependency injection
|
|
16
|
+
framework for Java 5 and above, brought to you by Google.</description>
|
|
17
|
+
<url>http://code.google.com/p/google-guice/</url>
|
|
18
|
+
<inceptionYear>2006</inceptionYear>
|
|
19
|
+
<issueManagement>
|
|
20
|
+
<system>Google Code</system>
|
|
21
|
+
<url>http://code.google.com/p/google-guice/issues/</url>
|
|
22
|
+
</issueManagement>
|
|
23
|
+
<mailingLists>
|
|
24
|
+
<mailingList>
|
|
25
|
+
<name>google-guice</name>
|
|
26
|
+
<archive>http://groups.google.com/group/google-guice/topics</archive>
|
|
27
|
+
<subscribe>http://groups.google.com/group/google-guice/subscribe</subscribe>
|
|
28
|
+
<unsubscribe>http://groups.google.com/group/google-guice/subscribe</unsubscribe>
|
|
29
|
+
<post>http://groups.google.com/group/google-guice/post</post>
|
|
30
|
+
</mailingList>
|
|
31
|
+
<mailingList>
|
|
32
|
+
<name>google-guice-dev</name>
|
|
33
|
+
<archive>http://groups.google.com/group/google-guice-dev/topics</archive>
|
|
34
|
+
<subscribe>http://groups.google.com/group/google-guice-dev/subscribe</subscribe>
|
|
35
|
+
<unsubscribe>http://groups.google.com/group/google-guice-dev/subscribe</unsubscribe>
|
|
36
|
+
<post>http://groups.google.com/group/google-guice-dev/post</post>
|
|
37
|
+
</mailingList>
|
|
38
|
+
</mailingLists>
|
|
39
|
+
<dependencyManagement>
|
|
40
|
+
<dependencies>
|
|
41
|
+
<dependency>
|
|
42
|
+
<groupId>com.google.inject</groupId>
|
|
43
|
+
<artifactId>guice</artifactId>
|
|
44
|
+
<version>${version}</version>
|
|
45
|
+
</dependency>
|
|
46
|
+
<dependency>
|
|
47
|
+
<groupId>aopalliance</groupId>
|
|
48
|
+
<artifactId>aopalliance</artifactId>
|
|
49
|
+
<version>1.0</version>
|
|
50
|
+
</dependency>
|
|
51
|
+
</dependencies>
|
|
52
|
+
</dependencyManagement>
|
|
53
|
+
<scm>
|
|
54
|
+
<url>http://code.google.com/p/google-guice/source/browse/</url>
|
|
55
|
+
</scm>
|
|
56
|
+
<build>
|
|
57
|
+
<pluginManagement>
|
|
58
|
+
<plugins>
|
|
59
|
+
<plugin>
|
|
60
|
+
<artifactId>maven-compiler-plugin</artifactId>
|
|
61
|
+
<configuration>
|
|
62
|
+
<source>1.5</source>
|
|
63
|
+
<target>1.5</target>
|
|
64
|
+
</configuration>
|
|
65
|
+
<inherited>true</inherited>
|
|
66
|
+
</plugin>
|
|
67
|
+
</plugins>
|
|
68
|
+
</pluginManagement>
|
|
69
|
+
</build>
|
|
70
|
+
</project>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
amqp-client-1.8.0
|