0

我正在研究一种向应用程序添加类似插件的功能的方法。

我想要的是能够给客户一个 JAR 文件并让他们将其放入应用程序中并让它被“拉入”,而无需对配置文件或诸如此类的东西进行任何更改。

我希望能够将它们放入WEB-INF/libTomcat 7 中,因为它支持 Servlet 3.0,所以效果很好。问题在于,并非此应用程序的所有用户都拥有 Tomcat 7,这需要足够灵活,以免强迫他们更新。

有谁知道实现相同功能的方法,但与旧版本的 Tomcat 和 Servlet API 兼容?

这也是一个 Maven 项目,因此将其推送到 repo 也可以,但这涉及到pom.xml我宁愿远离的客户端修改。

编辑:

我想我找到了使用 serviceLoader 的合适解决方案,但如果有人有更好的主意,请告诉我。我对这个领域很陌生,所以我愿意接受建议。

4

2 回答 2

0

You might want to look into Maven WAR overlays if you want to make the customization explicit and repeatable: http://maven.apache.org/plugins/maven-war-plugin/overlays.html

于 2013-06-18T22:10:35.713 回答
0

您也可以在旧版本的 Tomcat 上将 JAR 文件直接放入 WEB-INF/lib 中。

您只需要确保 JAR 文件在它们被放入的 Tomcat 版本上工作。所以要么

a) 使 JAR 文件适用于所有必需的 Tomcat 版本

b) 为每个 tomcat 版本创建不同版本的 JAR 并相应地分发。


这样做的问题是,如果从头开始重新部署 Web 应用程序,则可能会删除插件 JAR。所以你可能需要考虑如何持久化它们。

于 2013-06-17T16:10:08.667 回答