-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathpom2gradle.rb
36 lines (30 loc) · 853 Bytes
/
pom2gradle.rb
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
require 'xmlsimple'
file = (ARGV.length > 0 ? ARGV[0] : nil) || 'test.xml'
project = XmlSimple.xml_in(file, { 'ForceArray' => false })
puts "apply plugin: 'java'"
puts "apply plugin: 'war'"
puts ''
puts 'repositories {'
puts ' mavenCentral()'
puts '}'
puts ''
puts 'ext {'
project['properties'].each { |k, v|
puts " #{k.gsub(/[.-]/, '_')} = '#{v}'"
}
puts '}'
puts ''
puts 'dependencies {'
for d in project['dependencies']['dependency']
scope = d['scope'] || 'compile'
scope = 'providedCompile' if scope == 'provided'
scope = 'testCompile' if scope == 'test'
print " #{scope}(\"#{d['groupId']}:#{d['artifactId']}:#{d['version'].gsub(/[.-]/, '_')}\")"
if d['exclusions']
e = d['exclusions']['exclusion']
puts " {\n exclude group: '#{e['groupId']}', module: '#{e['artifactId']}' \n }"
else
puts ''
end
end
puts '}'