【问题标题】:Which scope use maven when encountering custom scope?遇到自定义范围时哪个范围使用maven?
【发布时间】:2015-04-24 21:01:40
【问题描述】:

在最近迁移到 Maven 3 的 Maven 2 项目中,我有警告(范围必须是 [provided, compile, runtime, test, system] 之一,但是是“...”)使用自定义范围。

有问题的自定义范围是package,当遇到无效/自定义范围时,我找不到关于哪个是默认值的文档/提示。

  1. “包”自定义范围对那些仍然了解 maven 2 的人来说有什么好处吗?我可以找到参考 herehere 但这几乎是全部。
  2. 在这种情况下,默认范围是多少? (我猜是compile,但我想在更改任何内容之前先确定一下)。

问候,

【问题讨论】:

    标签: maven-2 maven-3


    【解决方案1】:

    我不知道scope package 存在。博客条目完全是错误的。默认范围是compile,您可以找到documentation about the available scopes

    如果你有一个像范围这样的默认值,你只需从依赖项中省略条目。

    较早版本的 Maven,如 2.0.11、2.2.1 不会像范围一样检查 pom 文件中的所有条目,因此自 Maven 3 以来它已被忽略,它们会检查有效值。

    【讨论】:

    • 我知道这个文档,但是我找不到像“如果你使用自定义范围,这是错误的,它将被 compile 替换”这样的明确内容。顺便说一句,我不明白这一点:“如果你有一个像范围这样的默认值,你只需从你的依赖项中省略条目。”?
    • 默认范围是compile,您可以简单地从依赖项中省略它。
    • 任何具体的证据,除了我的意思是经验?
    • 什么意思?这是 XSD 中的默认设置,当然也有文档记录 (maven.apache.org/pom.html)。
    • 文档说 这是默认范围,如果未指定则使用,但这与 这是在提供未知范围时使用的范围不同我>。而且我找不到关于那个的文档:/(即使最后我可能会使用编译范围)。此外,添加此警告的 maven 补丁并没有说明太多:jira.codehaus.org/browse/MNG-3991
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-12-03
    • 2015-07-07
    • 1970-01-01
    • 2017-09-13
    • 2015-12-11
    • 2014-06-20
    • 1970-01-01
    相关资源
    最近更新 更多