根据OpenFire文档(https://www.igniterealtime.org/builds/openfire/docs/latest/documentation/plugin-dev-guide.html)构建自定义插件,我需要创建一个具有以下文件夹结构的jar:
myplugin/
|- plugin.xml <- Plugin definition file
|- readme.html <- Optional readme file for plugin, which will be displayed to end users
|- changelog.html <- Optional changelog file for plugin, which will be displayed to end users
|- logo_small.gif <- Optional small (16x16) icon associated with the plugin (can also be a .png file)
|- logo_large.gif <- Optional large (32x32) icon associated with the plugin (can also be a .png file)
|- classes/ <- Resources your plugin needs (i.e., a properties file)
|- database/ <- Optional database schema files that your plugin needs
|- i18n/ <- Optional i18n files to allow for internationalization of plugins.
|- lib/ <- Libraries (JAR files) your plugin needs
|- web <- Resources for Admin Console integration, if any
|- WEB-INF/
|- web.xml <- Generated web.xml containing compiled JSP entries
|- web-custom.xml <- Optional user-defined web.xml for custom servlets
|- images/
我知道有一个Ant构建脚本可以帮助我做到这一点,但是我无法找到它并且我在Gradle和Maven上度过了足够的时间,我宁愿不添加学习Ant并将XML处理到我的家务清单上。所以,我尝试制作Gradle构建脚本。不幸的是,Gradle对我没有任何意义,在Intellij中,它似乎只是做任何想做的事。
无论如何,这是我提出的Gradle脚本。
task buildPluginJar {
group 'build'
description 'Builds OpenFire Plugin Jar'
println 'Clean old libs and classes.'
delete 'pluginDefinition/lib/*'
delete 'pluginDefinition/classes/*'
println 'Copy libs.'
copy {
into 'pluginDefinition/lib'
from configurations.runtime
}
println 'Copy classes.'
copy {
into 'pluginDefinition/classes'
from 'build/classes'
}
println 'Build jar.'
String outputPath = 'build/out/' + project.name + '.jar';
jar {
into outputPath
from fileTree('pluginDefinition/').include('**/*').collect { zipTree it }
}
}
我设法让文件复制工作,但它应该把它全部放入信号罐的结束是不行的。它完成但没有jar输出。我做错了什么?
答案 0 :(得分:0)
我无法弄清楚如何使用Gradle做到这一点。但我确实弄清楚如何使用Intellij构建罐子。我按照本教程: http://blog.jetbrains.com/idea/2010/08/quickly-create-jar-artifact/
我浏览了文件&gt; “项目结构”菜单并添加了两个工件。一个用我的pluginDefinition / lib文件夹中的所有java代码构建jar,另一个构建一个jar,其中包含我可以在我的Openfire服务器上安装的pluginDefinition文件夹的全部内容。
尽管如此,如果我能用Gradle做到这一点会很好。