代码之家  ›  专栏  ›  技术社区  ›  Justin

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

  •  1
  • Justin  · 技术社区  · 14 年前

    我能够欺骗m2eclipse将maven管理的对war文件库的依赖关系放到launcher类路径上(当从eclipse运行时)。为此,我为同一个工件创建了两个依赖项:一个是“war”类型,另一个是“jar”类型(“jar”依赖项诱使eclipse做我想做的事情)。

    但是,当无法找到war项目的jar时,启动程序的maven程序集插件将失败。

    我可以告诉maven在运行包目标时忽略jar依赖关系吗?

    我有一个网络应用程序.war在迁移到maven之前,我有一个eclipse项目依赖项,因此启动器在运行时拥有所有war依赖项。测试更改所需的一切都直接从ide中运行(没有重新构建warfile)。

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

    2 回复  |  直到 14 年前
        1
  •  1
  •   Justin    14 年前

    我通过使用一个单独的.m2/设置来解决这个问题-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>
    

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

        2
  •  -2
  •   Đorđe Zeljić    12 年前

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

    <optional>true</optional> 给你的pom.xml文件