Maven 2 在特定执行阶段忽略maven依赖关系
我有一个(定制的)嵌入式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 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依赖关系吗 更详细的背景:
在迁移到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中