【问题标题】:Maven directory structureMaven目录结构
【发布时间】:2010-10-28 08:05:24
【问题描述】:

我是 Maven 新手,我整个上午都在阅读教程(很棒的工具)。

我开始研究的这个新 Java 项目没有使用默认目录结构。它使用 src/org/myapp 之类的东西来代替 src/main/java 的来源。

当我在项目(pom.xml 所在的位置)上运行 mvn package 时,我收到一条消息说没有编译任何源,因为它无法找到它们(源路径不同)。

有没有办法在 Maven 中指定你自己的源路径?

【问题讨论】:

    标签: java maven-2


    【解决方案1】:

    sourceDirectory 添加到pom 文件中的build 标记中。

    <build>
        ...
     <sourceDirectory>src</sourceDirectory>
        ...
    </build>
    

    Here 是 maven 文档中的相关部分。

    【讨论】:

    • 但是从 eclipse 菜单创建一个新项目并将其用于 maven 是一个好习惯吗?
    • 我不认为这是一个新项目。听起来他正在尝试将现有项目(具有不同的目录结构)迁移到 Maven。但我可能是错的......
    • @zengr,我没有使用 Eclipse
    【解决方案2】:

    理论上,您可以为您的 Maven 项目使用非标准的目录结构。在实践中,您可能会发现各种 Maven 插件和 IDE 集成无法正常工作。所以我建议你重新组织你的项目目录结构,使其符合 Maven 的预期......在你获得大量版本控制历史和其他会使重组更加痛苦的东西之前。

    【讨论】:

    • 我不同意。行为良好的插件有一些标准方法可以找出目录结构是什么。使用model.getBuild().getSourceDirectory() 的插件将始终找到源目录,无论它在哪里。一个只检查new File("src/main/java") 的插件在其他方面也可能是一个非常糟糕的插件。
    • 但我也同意,如果可以选择,使用标准结构是个好主意。
    • @seanizer - 问题是插件和其他东西不太可能用使用非标准目录结构的 POM 进行测试。并且您可能会从 Maven 开发人员那里得到对您发现的任何错误的热情回应。
    • 我同意这条路会更崎岖。但我也认为所有主要的插件都应该很好地处理这种情况。
    • 哎呀……我的意思是“……联合国热情的回应……”。
    【解决方案3】:

    您是如何创建项目的?创建一个新的maven项目的想法是:mvn archetype:create然后按照说明进行操作。

    阅读this了解更多详情

    更新以根据 URL 回答扩展:

    mvn archetype:create -DgroupId=[your project's group id] -DartifactId=[your project's artifact id]
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-31
      • 2015-05-21
      • 1970-01-01
      • 2012-07-24
      • 2016-04-05
      • 1970-01-01
      • 1970-01-01
      • 2014-11-20
      相关资源
      最近更新 更多