【问题标题】:How to configure custom maven project structure如何配置自定义maven项目结构
【发布时间】:2012-11-03 14:57:07
【问题描述】:

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

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

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

src
  - main
web
  - WEB-INF

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

这可能与maven有关吗?

【问题讨论】:

  • 为什么不直接将本地更改提交到 svn?

标签: java maven build jenkins


【解决方案1】:

您可以将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,但您明白了。

【讨论】:

  • 只要创建了战争,这是可以接受的。但是,现在正在创建战争,但是,通过上述更改,您建议 WAR 不包括我的 src 类。
  • @birdy 你的资源在哪里? src/main/java 或其他地方?
【解决方案2】:

使用 maven war 插件属性,您可以设置 warSourceDirectory 属性 http://maven.apache.org/plugins/maven-war-plugin/war-mojo.html(我不确定您到底遇到了什么问题,所以这可能会或可能不会解决您的具体问题)。

但是,maven 非常固执己见,我强烈建议使用预期的 maven 结构。其他插件可能会给您带来意想不到的问题,而当您遵循它们的约定时,maven 的生活通常会容易得多。

【讨论】:

  • 您的链接正在链接回这个问题。
  • 但是现在你正在链接到一个旧的 Maven 1.x 版本的战争。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-07-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多