pompompom 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|