Maven 配置jetty:运行以使用;“最后的”;库文件夹

Maven 配置jetty:运行以使用;“最后的”;库文件夹,maven,maven-3,war,maven-jetty-plugin,maven-war-plugin,Maven,Maven 3,War,Maven Jetty Plugin,Maven War Plugin,我有一个使用war覆盖的Maven项目。如上所述,WAR覆盖的一个问题是,它们似乎有效地避开了Maven的依赖解决方案。这会导致生成和/或运行时验证错误 幸运的是,有一个解决方案-使用overlay/excludes配置指令。这将确保生成的WAR将只包含您想要的内容 然而,jetty:run似乎使用war插件的work目录进行库解析(其中确实包含“坏”JAR) 使用jetty:runwar或jetty:run-exploded可以避免此问题 但是, 由于我们的大多数项目使用jetty:run运

我有一个使用
war
覆盖的Maven项目。如上所述,WAR覆盖的一个问题是,它们似乎有效地避开了Maven的依赖解决方案。这会导致生成和/或运行时验证错误

幸运的是,有一个解决方案-使用
overlay/excludes
配置指令。这将确保生成的
WAR
将只包含您想要的内容

然而,
jetty:run
似乎使用
war
插件的
work
目录进行库解析(其中确实包含“坏”JAR)

使用
jetty:runwar
jetty:run-exploded
可以避免此问题

但是,

  • 由于我们的大多数项目使用
    jetty:run
    运行良好
  • 在开发过程中,
    带扫描间隔的码头运行
    非常方便
我想知道是否有可能在POM中添加一些配置更改,从而迫使
运行
目标使用目标
lib
文件夹?


为便于说明,以下是具体示例:

  • 该项目使用
    org.apache.solr:solr:3.6.2
    覆盖
  • 覆盖包括一个旧版本的番石榴,
    r05
    ,而我们的代码使用了一个更新的版本,
    14.0.1
  • 如前所述,虽然目标工件
    war
    没有问题,
    jetty:run
    r05
    版本包含到类路径中,这会导致代码中的验证错误
以下是POM示例:


4.0.0
com.example
索尔原型检验
0.0.1-快照
战争
Solr项目
3.6.2
8983
org.apache.solr
solr核
${solr.version}
org.apache.solr
索尔
${solr.version}
战争
org.apache.solr
索尔索尔
${solr.version}
番石榴
番石榴
14.0.1
src/main/resources
真的
org.apache.maven.plugins
maven编译器插件
2.5.1
1.7
1.7
org.apache.maven.plugins
maven战争插件
2.3
org.apache.solr
索尔
**/番石榴-r05.jar
org.mortbay.jetty
maven jetty插件
6.1.25
10
福
9999
/索尔
${solr.port}
60000
solr.data.dir
目标/数据