forked from wolfdancer/cotta
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathrakefile.rb
91 lines (78 loc) · 2.44 KB
/
rakefile.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
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
88
89
90
91
# This rake file uses the working copy of BuildMaster instead of its gem
$:.unshift File.join(File.dirname(__FILE__), '..', 'buildmaster', 'lib', 'buildmaster')
require 'auto'
require 'rake'
root = BuildMaster::Cotta.parent_dir(__FILE__)
build = root.dir('build')
output = build.dir('output')
report = build.dir('report')
dist = build.dir('dist')
junit_file = root.file('lib/junit/junit-4.4.jar')
jmock_dir = root.dir('lib/jmock')
asserts = BuildMaster::JavaProject.new(root.dir('asserts')) do |project|
project.target_version = '1.5'
project.src = 'src'
project.test.src = 'test'
project.output = output.dir('asserts')
project.uses(junit_file)
project.uses_files_in jmock_dir
end
testbase = BuildMaster::JavaProject.new(root.dir('testbase')) do |project|
project.target_version = '1.5'
project.src = 'src'
project.test.src = 'test'
project.output = output.dir('testbase')
project.uses(asserts, junit_file)
project.uses_files_in jmock_dir
end
core = BuildMaster::JavaProject.new(root.dir('core')) do |project|
project.target_version = '1.5'
project.output = output.dir('cotta')
project.src = 'src'
project.test.src = 'behaviour/src'
project.test.resource = 'behaviour/resources'
project.uses(testbase, junit_file) # junit is for TestLoader only
end
ftp = BuildMaster::JavaProject.new(root.dir('ftp')) do |project|
project.target_version = '1.5'
project.output = output.dir('ftp')
project.src = 'src'
project.test.src = 'behaviour/src'
project.test.resource = 'behaviour/resources'
project.uses core
project.uses_files_in('../lib/commons-io', '../lib/coloradoftp', '../lib/commons-net')
project.tests_with testbase
end
task :default => [:package, :javadoc]
task :make_testbase => [:make_asserts]
task :make_cotta => [:make_testbase]
task :make_ftp => [:make_cotta]
task :compile => [:make_ftp]
task :make_asserts do
asserts.make
end
task :make_testbase do
testbase.make
end
task :make_cotta do
core.make
end
task :make_ftp do
ftp.make
end
task :clean do
build.delete
end
task :package do
asserts.package(dist, 'cotta-asserts')
testbase.package(dist, 'cotta-testbase')
core.package(dist, 'cotta') do |package|
package.manifest = core.src.file('META-INF/MANIFEST.MF')
package.add(ftp.prod.output, ftp.prod.src)
end
end
task :javadoc do
api = dist.dir('javadoc')
asserts.javadoc(api.dir('asserts')).run(build.file('javadoc-asserts.xml'))
core.javadoc(api.dir('core')).run(build.file('javadoc-core.xml'))
end