在IntellJ中使用Jersey和Groovy运行Spring Boot应用程序

在IntellJ中使用Jersey和Groovy运行Spring Boot应用程序,groovy,intellij-idea,jersey,jax-rs,spring-boot,Groovy,Intellij Idea,Jersey,Jax Rs,Spring Boot,我正在使用带有servlet的模板Spring引导应用程序。当我将最新的Jersey(用于jax rs)添加到应用程序中,然后将Groovy框架添加到应用程序中(仅用于测试)时,我开始在IntelliJ中运行应用程序时遇到问题 Groovy类路径上的一些库似乎与来自Jersey的库(ServletAPI和ASM)发生冲突,但我还不能100%确定这就是问题所在。可以肯定的是,IntelliJ构建的类路径与maven的不同 似乎与spring boot maven插件的技巧有关,但这只是一种怀疑。通

我正在使用带有servlet的模板Spring引导应用程序。当我将最新的Jersey(用于jax rs)添加到应用程序中,然后将Groovy框架添加到应用程序中(仅用于测试)时,我开始在IntelliJ中运行应用程序时遇到问题

Groovy类路径上的一些库似乎与来自Jersey的库(ServletAPI和ASM)发生冲突,但我还不能100%确定这就是问题所在。可以肯定的是,IntelliJ构建的类路径与maven的不同

似乎与spring boot maven插件的技巧有关,但这只是一种怀疑。通过
java-jar
运行失败,而通过
mvn-spring-boot:run
运行(从命令行以及从IntelliJ运行)

我得到一个例外:
原因:org.apache.catalina.LifecycleException:启动期间子容器失败

看起来问题的一部分是我如何设置gmaven。
当我像在本文中那样设置它时,问题就消失了,我的应用程序很高兴地用IntelliJ中的java-jar启动,我只是解决了这个问题

Groovy还包括ServletAPI库,该库与SpringBoot导入的库冲突


您可以从groovy中排除servlet api。

这是一个完全通用的例外。您需要发布堆栈跟踪(实际上是来自应用程序的堆栈跟踪,而不是容器,在正常情况下将单独打印)。更好地共享代码,这样我们就可以看到你做了什么。您可能可以检查IDE中的依赖项(Eclipse至少在这方面相当不错),并查看是否有什么东西突然出现在您的面前。我已经做了,但它是一个移动的目标。首先是ASM造成的问题,然后是groovy附带的servlet api等等……每次例外情况都不同,我可以采取的唯一措施是从groovy runtime lib文件夹中删除一个库。我强烈建议不要使用groovy发行版(带有servlet JAR和其他东西)来构建或运行应用程序。使用依赖关系管理系统来控制依赖关系要好得多。只需使用maven构建项目并运行它。谢谢。这也是我采取的方法,希望有人能解决这个问题。