maven部署排除

时间:2009-09-16 09:19:23

标签: deployment maven-2

我想在部署时排除一个依赖项,我在本地使用jar时需要它,但它不应该在已部署的jar中。有没有办法做到这一点?

3 个答案:

答案 0 :(得分:3)

这取决于“在本地使用jar”的含义。

如果您的意思是不希望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排除特定的依赖项。

答案 1 :(得分:1)

<profile>
    <id>localProfile</id>
    <activation>
        <property>
            <name>!deploy</name>
        </property>
    </activation>
    <dependencies>
        <dependency>
            ...
        </dependency>
    </dependencies>
</profile>

当我用

运行它时

mvn deploy -D deploy = 0

jar没有那种依赖

答案 2 :(得分:0)

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

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