我知道maven结构通常是这样的:
pom.xml
src
- main
- web
- WEB-INF
但是,我有一个具有以下结构的项目
src
- main
web
- WEB-INF
上述两个中的后者目前不使用maven。我已经开始在本地使用maven,使结构符合maven标准。但是,我现在想要从jenkins中自动构建这个项目,使其脱离源代码控制(svn)。所以我想添加一个pom.xml,它知道web
不在src
内的事实
这可以和maven一起使用吗?
答案 0 :(得分:6)
您可以将maven-war-plugin
配置为使用其他warSourceDirectory
,但正如Jeff Storey在其answer中解释的那样,我们确实不建议这样做。
这就是你要做的:
<project>
...
<build>
<plugins>
<plugin>
<artifactId>maven-war-plugin</artifactId>
<version>2.3</version>
<configuration>
<warSourceDirectory>web</warSourceDirectory>
</configuration>
</plugin>
</plugins>
</build>
...
</project>
其中一个问题是例如maven-jetty-plugin
不会开箱即用。默认情况下,它会查找src/main/webapp
,因此必须进行配置。
你可能不会使用maven-jetty-plugin
,但你明白了。
答案 1 :(得分:3)
使用maven war插件属性,您可以设置warSourceDirectory
属性http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html(我不确定您遇到了哪些问题,因此这可能会或可能不会解决您的具体问题)
然而,maven非常自以为是,我强烈建议使用预期的maven结构。其他插件可能会给你带来意想不到的问题,当你遵守惯例时,maven生活通常会容易得多。