capistrano-maven 0.0.5 → 0.0.6
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/README.md +1 -0
- data/lib/capistrano-maven/deploy.rb +37 -9
- data/lib/capistrano-maven/version.rb +1 -1
- metadata +3 -2
data/README.md
CHANGED
@@ -48,6 +48,7 @@ Following options are available to manage your Maven build.
|
|
48
48
|
* `:mvn_template_path` - specify ERB template path for settings.xml.
|
49
49
|
* `:mvn_java_home` - optional `JAVA_HOME` settings for Maven commands.
|
50
50
|
* `:mvn_java_home_local` - optional `JAVA_HOME` settings for Maven commands in localhost.
|
51
|
+
* `:mvn_release_build` - Skip building on SNAPSHOT version. `false` by default.
|
51
52
|
|
52
53
|
## Contributing
|
53
54
|
|
@@ -1,6 +1,5 @@
|
|
1
1
|
|
2
2
|
require 'capistrano'
|
3
|
-
require 'tempfile'
|
4
3
|
require 'uri'
|
5
4
|
|
6
5
|
module Capistrano
|
@@ -201,7 +200,7 @@ module Capistrano
|
|
201
200
|
|
202
201
|
task(:update_settings, :roles => :app, :except => { :no_release => true }) {
|
203
202
|
srcs = mvn_settings.map { |f| File.join(mvn_template_path, f) }
|
204
|
-
tmps = mvn_settings.map { |f|
|
203
|
+
tmps = mvn_settings.map { |f| capture("mktemp").chomp }
|
205
204
|
dsts = mvn_settings.map { |f| File.join(mvn_settings_path, f) }
|
206
205
|
begin
|
207
206
|
srcs.zip(tmps).each do |src, tmp|
|
@@ -215,7 +214,7 @@ module Capistrano
|
|
215
214
|
|
216
215
|
task(:update_settings_locally, :except => { :no_release => true }) {
|
217
216
|
srcs = mvn_settings_local.map { |f| File.join(mvn_template_path, f) }
|
218
|
-
tmps = mvn_settings.map { |f|
|
217
|
+
tmps = mvn_settings.map { |f| `mktemp`.chomp }
|
219
218
|
dsts = mvn_settings_local.map { |f| File.join(mvn_settings_path_local, f) }
|
220
219
|
begin
|
221
220
|
srcs.zip(tmps).each do |src, tmp|
|
@@ -247,22 +246,51 @@ module Capistrano
|
|
247
246
|
}
|
248
247
|
}
|
249
248
|
|
249
|
+
def _mvn(cmd, path, goals=[])
|
250
|
+
"cd #{path.dump} && #{cmd} #{goals.map { |s| s.dump }.join(' ')}"
|
251
|
+
end
|
252
|
+
|
253
|
+
def _mvn_parse_version(s)
|
254
|
+
# FIXME: is there any better way to get project version?
|
255
|
+
s.split(/(?:\r?\n)+/).reject { |line| /^\[[A-Z]+\]/ =~ line }.last
|
256
|
+
end
|
257
|
+
|
258
|
+
_cset(:mvn_release_build, false)
|
259
|
+
_cset(:mvn_snapshot_pattern, /-SNAPSHOT$/i)
|
260
|
+
_cset(:mvn_project_version) {
|
261
|
+
_mvn_parse_version(capture(_mvn(mvn_cmd, mvn_project_path, %w(-Dexpression=project.version help:evaluate))))
|
262
|
+
}
|
263
|
+
_cset(:mvn_project_version_local) {
|
264
|
+
_mvn_parse_version(run_locally(_mvn(mvn_cmd_local, mvn_project_path_local, %w(-Dexpression=project.version help:evaluate))))
|
265
|
+
}
|
266
|
+
|
267
|
+
def _validate_project_version(version_key)
|
268
|
+
if mvn_release_build
|
269
|
+
version = fetch(version_key)
|
270
|
+
if mvn_snapshot_pattern === version
|
271
|
+
abort("Skip to build project since \`#{version}' is a SNAPSHOT version.")
|
272
|
+
end
|
273
|
+
end
|
274
|
+
end
|
275
|
+
|
250
276
|
desc("Perform maven build.")
|
251
277
|
task(:execute, :roles => :app, :except => { :no_release => true }) {
|
252
278
|
on_rollback {
|
253
|
-
run(
|
279
|
+
run(_mvn(mvn_cmd, mvn_project_path, %w(clean)))
|
254
280
|
}
|
255
|
-
|
281
|
+
_validate_project_version(:mvn_project_version)
|
282
|
+
run(_mvn(mvn_cmd, mvn_project_path, mvn_goals))
|
256
283
|
}
|
257
284
|
|
258
285
|
desc("Perform maven build locally.")
|
259
286
|
task(:execute_locally, :roles => :app, :except => { :no_release => true }) {
|
260
287
|
on_rollback {
|
261
|
-
run_locally(
|
288
|
+
run_locally(_mvn(mvn_cmd_local, mvn_project_path_local, %w(clean)))
|
262
289
|
}
|
263
|
-
|
264
|
-
|
265
|
-
|
290
|
+
_validate_project_version(:mvn_project_version_local)
|
291
|
+
cmdline = _mvn(mvn_cmd_local, mvn_project_path_local, mvn_goals)
|
292
|
+
logger.info(cmdline)
|
293
|
+
abort("execution failure") unless system(cmdline)
|
266
294
|
}
|
267
295
|
|
268
296
|
_cset(:mvn_tar, 'tar')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: capistrano-maven
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.6
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-19 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: capistrano
|
@@ -69,3 +69,4 @@ signing_key:
|
|
69
69
|
specification_version: 3
|
70
70
|
summary: a capistrano recipe to deploy Apache Maven based projects.
|
71
71
|
test_files: []
|
72
|
+
has_rdoc:
|