我想在部署时排除一个依赖项,我在本地使用jar时需要它,但它不应该在已部署的jar中。有没有办法做到这一点?
答案 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>
设置依赖关系。这样,就不会部署依赖关系。
但是,在本地,您需要在类路径中添加依赖项...