如何明智地构建Maven项目包?

时间:2016-05-16 11:01:24

标签: java maven maven-2

我有5个包

com/test1
com/test2
com/test3
com/test4
com/test4

我想一次只打造一个或两个包中的任何一个。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

试试这个罐子:

<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-alpha-2   假真的   逗号分隔的令牌列表,以便在之前从WAR中排除   打包。此选项可用于实现瘦的WAR使用   案件。请注意,您可以使用Java Regular Expressions引擎   使用表达式%regex []包含和排除特定模式。   提示:阅读about(?!Pattern)。

然后最后你可以看到这个例子:

(...)
<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>
(...)