从Maven Build中排除webapp文件夹

时间:2017-07-22 19:10:38

标签: java maven build maven-plugin

我试图通过maven build为我的战争实现自定义目录结构。 下面是我在pom.xml中使用的构建命令。

<build>
        <finalName>abc</finalName>
                 <plugins>
            <plugin>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <configuration>
                            <tasks>
                                <mkdir dir="bin" />

                            </tasks>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-resources-plugin</artifactId>
                <version>3.0.2</version>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <!-- here the phase you need -->
                        <phase>validate</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>bin</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/webapp/</directory>
                                </resource>

                            </resources>

                        </configuration>
                    </execution>

                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.1</version>
                <configuration>
                    <source>1.7</source>
                    <target>1.7</target>
                </configuration>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <version>2.4</version>
                <configuration>
                    <warSourceDirectory>bin</warSourceDirectory>
                    <failOnMissingWebXml>false</failOnMissingWebXml>

                </configuration>
            </plugin>

        </plugins>
    </build>

解压缩之后,请在下面找到war文件的当前目录结构。 Maven包含WEB-INF / Classes下的完整webapp目录,但我只想要java类文件(ndaws目录)。我已经尝试了很多排除技术,但没有任何效果 enter image description here

3 个答案:

答案 0 :(得分:0)

得到解决方案,我在pom中的更改没有反映,正在从目标下的build文件夹创建war。

谢谢

答案 1 :(得分:0)

maven-resources-plugin 中删除资源目录 并将warSourceDirectory添加到 maven-war-plugin

<plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.0.0</version>
    <configuration>
        <warSourceDirectory>src/main/webapp</warSourceDirectory>
    </configuration>
</plugin>

或者如果使用标记为“resoures”的intelij和webapp文件夹,请选择该文件夹 打开上下文菜单。
将目录标记为&gt; 取消标记为资源根

答案 2 :(得分:0)

我尝试了很多解决方案。最后,我找到了一个可以解决我问题的方法……这是一个类似的案例,但是我需要排除webapp内的文件夹。 我使用7zip打开了war文件。要排除的文件夹位于主页中。 我用了这个:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-war-plugin</artifactId>
    <version>3.2.3</version>
    <configuration>
        <packagingExcludes>myfolder/**</packagingExcludes>
    </configuration>
</plugin>

只需使用您要排除的文件夹更改“ myfolder”。 如果该文件夹不止一个,则将此行相乘。