Maven 2 在特定执行阶段忽略maven依赖关系

Maven 2 在特定执行阶段忽略maven依赖关系,maven-2,dependencies,ignore,Maven 2,Dependencies,Ignore,我有一个(定制的)嵌入式jetty启动器,我一直在使用它开发/测试我的web应用程序(在迁移到maven之前) 我能够诱使m2eclipse将war文件的maven管理的库依赖项放入启动器类路径(从eclipse运行时)。为此,我为同一工件创建了两个依赖项:一个是类型“war”,另一个是类型“jar”(“jar”依赖项诱使Eclipse做我想做的事情) 但是,当无法找到war项目的jar时,启动器的maven汇编插件将失败 Q:我能告诉maven在运行包目标时忽略jar依赖关系吗 更详细的背景:

我有一个(定制的)嵌入式jetty启动器,我一直在使用它开发/测试我的web应用程序(在迁移到maven之前)

我能够诱使m2eclipse将war文件的maven管理的库依赖项放入启动器类路径(从eclipse运行时)。为此,我为同一工件创建了两个依赖项:一个是类型“war”,另一个是类型“jar”(“jar”依赖项诱使Eclipse做我想做的事情)

但是,当无法找到war项目的jar时,启动器的maven汇编插件将失败

Q:我能告诉maven在运行包目标时忽略jar依赖关系吗

更详细的背景: 在搬到maven之前,我有一个webapp.war项目和一个jetty launcher项目;我有一个eclipse项目依赖项,因此启动器在运行时具有所有war依赖项。测试更改所需的一切都直接从ide中运行(没有重新构建WAR文件)


在迁移到maven之后,这种方法变得更聪明了,因为m2eclipse知道不包括jar所依赖的库(因为它们是战争范围的)

我通过使用一个单独的.m2/settings-eclipse.xml(用于eclipse)解决了这个问题,在这里我超越了默认的依赖类型。因此,在我的发射器POM中,我有:

<dependency>
  <groupId>com.myco</groupId>
  <artifactId>my-server</artifactId>
  <version>${project.version}</version>

  <!-- here we want eclipse to see "jar" but command line to see "war" -->
  <type>${jetty.launcher.workaround}</type>
</dependency>

com.myco
我的服务器
${project.version}
${jetty.launcher.workaround}

我仍然想知道是否有一种直接的方法来解决最初的问题。

可能已经太晚了,但这可能对某些人有所帮助:

<optional>true</optional>
</dependency>
true

因此,将
true
添加到pom.xml中