# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with this
# work for additional information regarding copyright ownership. The ASF
# licenses this file to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
# License for the specific language governing permissions and limitations under
# the License.
require 'buildr/java'
module Buildr
# Addes the jdepend:swing
, jdepend:text
and jdepend:xml
tasks.
# Require explicitly using require "buildr/jdepend"
.
module Jdepend
REQUIRES = ["jdepend:jdepend:jar:2.9.1"]
class << self
def requires()
@requires ||= Buildr.artifacts(REQUIRES).each(&:invoke).map(&:to_s)
end
def paths()
Project.projects.map(&:compile).each(&:invoke).map(&:target).
map(&:to_s).select { |path| File.exist?(path) }.map { |path| File.expand_path(path) }
end
end
namespace "jdepend" do
desc "Runs JDepend on all your projects (Swing UI)"
task "swing" do
Java::Commands.java "jdepend.swingui.JDepend", paths, :classpath=>requires, :name=>"JDepend"
end
desc "Runs JDepend on all your projects (Text UI)"
task "text" do
Java::Commands.java "jdepend.textui.JDepend", paths, :classpath=>requires, :name=>"JDepend"
end
desc "Runs JDepend on all your projects (XML output to jdepend.xml)"
task "xml" do
Java::Commands.java "jdepend.xmlui.JDepend", "-file", "jdepend.xml", paths, :classpath=>requires, :name=>"JDepend"
puts "Created jdepend.xml"
end
end
end
end