build_file_name = __FILE__
PROGUARD=true
$path_tool_proguard ="/opt/adt/sdk/tools/proguard/lib/proguard.jar"#混淆工具的目录
classes_dir = File.dirname(build_file_name)
shell_abs_path= File.absolute_path(build_file_name)
project_path = shell_abs_path.sub("/bin/classes/#{$0}","")
$config_progruad = "#{project_path}/proguard.txt"#混淆配置文件
$jar_output=classes_dir+"/classes.jar"
$com_dir="com"
$proguard_output=classes_dir+"/proguard.jar"
$dex_output=classes_dir+"/urlparser.jar"
$except_class = [
"com/kankan/anime/parser/IParser.class"#指定不需要打包的class文件
]
pack_class = []
def except?(file_name)
$except_class.each{|c|
if(file_name[c])
return true
end
}
return false
end
def delete_unpack_class(jar_output)
$except_class.each{|clazz|
puts %x{zip -d #{jar_output} #{clazz}}
}
end
def package(proguard)
puts %x{jar -cvf "#{$jar_output}" #{$com_dir}}
if proguard
puts %x{java -jar #{$path_tool_proguard} @#{$config_progruad}}
out = $proguard_output
else
out = $jar_output
end
delete_unpack_class(out)
puts %x{dx --dex --output="#{$dex_output}" "#{out}"}
end
package(PROGUARD)