如何配置自定义maven项目结构

时间:2012-11-15 01:25:53

标签: java maven build jenkins

我知道maven结构通常是这样的:

 pom.xml
 src
   - main
   - web
    - WEB-INF

但是,我有一个具有以下结构的项目

src
  - main
web
  - WEB-INF

上述两个中的后者目前不使用maven。我已经开始在本地使用maven,使结构符合maven标准。但是,我现在想要从jenkins中自动构建这个项目,使其脱离源代码控制(svn)。所以我想添加一个pom.xml,它知道web不在src内的事实

这可以和maven一起使用吗?

2 个答案:

答案 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生活通常会容易得多。