我试图通过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目录)。我已经尝试了很多排除技术,但没有任何效果
答案 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”。 如果该文件夹不止一个,则将此行相乘。