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

Maven部署排除

  •  2
  • IAdapter  · 技术社区  · 15 年前

    我想在部署时排除一个依赖项,在本地使用JAR时需要它,但它不应该在部署的JAR中。有什么办法吗?

    3 回复  |  直到 13 年前
        1
  •  3
  •   Rich Seller    15 年前

    这取决于你所说的“本地使用罐子”。

    如果您的意思是不希望jar包含在任何包中,那么可以设置 scope 依赖于 provided . 此范围仅在编译和测试类路径上可用,不可传递。对这一范围的依赖将不包括在战争/耳朵中。

    <dependency>
      <groupId>some.groupid</groupId>
      <artifactId>my-dependency</artifactId>
      <version>1.0.0</version>
      <scope>provided</scope>
    </dependency>
    

    如果您的意思是不希望jar捆绑到用汇编插件构建的发行版中,您可以 configure the assembly 排除特定依赖项。

        2
  •  1
  •   IAdapter    15 年前
    <profile>
        <id>localProfile</id>
        <activation>
            <property>
                <name>!deploy</name>
            </property>
        </activation>
        <dependencies>
            <dependency>
                ...
            </dependency>
        </dependencies>
    </profile>
    

    当我用

    mvn deploy-d deploy=0

    罐子没有那种依赖性

        3
  •  0
  •   Romain Linsolas    15 年前

    也许一个好的解决方案是用 <scope>provided</scope> . 这样,就不会部署依赖项。

    但是,在本地,您需要在类路径中添加依赖项…