我有5个套餐如何构建Maven项目包明智?
com/test1
com/test2
com/test3
com/test4
com/test4
我希望每次只建一个或拖包的任何战争。我怎样才能做到这一点?
我有5个套餐如何构建Maven项目包明智?
com/test1
com/test2
com/test3
com/test4
com/test4
我希望每次只建一个或拖包的任何战争。我怎样才能做到这一点?
尝试此罐:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>${maven-jar-plugin.version}</version>
<executions>
<execution>
<id>default-jar</id>
<phase>package</phase>
<goals>
<goal>jar</goal>
</goals>
<configuration>
<excludes>
<exclude>your_package_folder_here/**</exclude>
</excludes>
</configuration>
</execution>
</executions>
</plugin>
而本作的战争:
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<packagingExcludes>WEB-INF/classes/your_package_folder_here/**</packagingExcludes>
</configuration>
</plugin>
别忘了要排除的包文件夹的完整路径的末尾使用/**
/**
用于文件夹/*
用于文件。你的jar文件将被放置在没有包的目标中。规则适用于这两种情况。
如果要排除多个包,然后我的第一个建议是,首先读取插件API:
packagingExcludes java.lang.String中2.1-α-2 虚假真正的 逗号分开的令牌列表,以便在 包装之前从WAR中排除。该选项可用于实施瘦身WAR使用 的情况。请注意,您可以使用Java正则表达式引擎 使用表达式%regex []包含和排除特定模式。提示:阅读关于(?!模式)。
然后最后你能拿这个例子:
(...)
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.6</version>
<configuration>
<packagingExcludes>WEB-INF/classes/com/steelzack/b2b2bwebapp/excludefolder/**,WEB-INF/classes/com/steelzack/b2b2bwebapp/excludefolder2/**</packagingExcludes>
</configuration>
</plugin>
(...)
这是行不通的。 –
发生了什么事?小心使用排除节点。他们应该是你的文件夹,如:'com/package/something/**'。同样在目标中,您将在类文件夹中看到该包,但不在jar中。如果你检查内容,那么你的包不应该在那里。示例:'
我已经在示例项目中再次尝试过,它确实有效!我已经使用过很多次了,它一直为我工作。 –
您已经尝试了什么? – SparkAndShine
你说的是战争?你为什么想建立包装明智?那是什么目的? – khmarbaise
在一个项目中,我有所有的代码,我不会建立所有的代码,它增加了战争的规模。甚至一些软件包代码没有用。例如我有3个用户,我想发送每个包构建给每个用户。我不会为每个用户创建单独的项目,有时第4用户将需要所有3包构建 –