【问题标题】:What are the hidden features of Maven2? [closed]Maven2的隐藏特性是什么? [关闭]
【发布时间】:2008-11-22 11:52:56
【问题描述】:

Maven2有哪些隐藏功能?

【问题讨论】:

  • 每个功能实际上都被隐藏了,因为文档太糟糕了

标签: java apache maven-2 dependency-management


【解决方案1】:

您可以使用 settings.xml 来强制在本地计算机上运行的所有 maven 构建也使用本地安装的 maven 代理。节省自己和网络时间。

<settings xmlns="http://maven.apache.org/POM/4.0.0"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
                  http://maven.apache.org/xsd/settings-1.0.0.xsd">
    <profile>
        <id>localcacheproxies</id>

        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>

        <repositories>
            <repository>
                <id>localCacheProxy</id>
                <url>http://my-local-proxy.com/maven-proxy</url>
            </repository>
        </repositories>
    </profile>
</profiles>

请注意,与此处发布的其他示例相比,此 settings.xml 中的命名空间标题也提供了不错的智能感知。 (在 windows、linux 和 mac 以及所有操作系统上的主目录中创建 .m2 文件夹)

【讨论】:

    【解决方案2】:

    看看dependency:analyze。

    【讨论】:

      【解决方案3】:

      有时您的文件需要包含一些只能在构建时发现的值。也许您有一个 Java 类来检查评估期是否已到,并且您将该期定义为“编译此构建后的 30 天”。您需要一种将当前日期或其他属性直接注入构建的方法。

      Maven 有一个很酷的隐藏功能,称为过滤 (Documentation here)。通过过滤,您可以要求 Maven 在某些源文件中查找模式并将其替换为某个值,并且很容易激活:

        <build>
          <resources>
            <resource>
              <directory>src/main/resources</directory>
              <filtering>true</filtering>
            </resource>
          </resources>
        </build>
      

      您可以在过滤器中粘贴什么?任何环境变量,pom 文件中的大部分值,以及有关 java 编译器的信息。现在,如果您在 Maven 中更改您的版本号,您不必去查找您的whatever.properties 文件并在那里更新您的版本。你可以在 Maven 中修改它,你就完成了。

      【讨论】:

      • “Maven 有一个很酷的隐藏功能,称为过滤(此处的文档)。”哈哈。它被隐藏并记录在案。
      • 隐藏和记录不是相互排斥的。如果您不知道它存在,您就不会考虑检查它的文档。因此,它只能被发现,而发现了什么?隐藏的东西。这就像 Java 中的标记块。完全记录在案。很大程度上未知。
      【解决方案4】:

      使用 maven-dependency-plugin 可以解决依赖冲突和循环依赖问题。

      添加到您的 pom.xml:

      <plugin>
         <groupId>org.apache.maven.plugins</groupId>
         <artifactId>maven-dependency-plugin</artifactId>
      </plugin>
      

      然后运行 ​​mvn dependency:resolve 或 mvn dependency:build-classpath 进行测试。

      关于依赖插件的更多信息: http://maven.apache.org/plugins/maven-dependency-plugin/howto.html

      【讨论】:

      • 我很确定您不需要为此编辑 pom.xml。
      • Indee,如果名称匹配,maven 会自动下载任何插件。但是,将它添加到 pom 中并特别包含一个特定版本(我忘记了)是一个很好的做法,以避免以后在不同环境中出现意外。
      • dependency:tree 在处理多个模块项目时通常是救命稻草
      【解决方案5】:
      1. 项目继承
      2. 项目聚合
      3. 组装:组装
      4. 报告(findbugs、checkstyle、clover、pmd 等)

      【讨论】:

        猜你喜欢
        • 2010-09-05
        • 2010-10-12
        • 2010-10-20
        • 2010-11-05
        • 2010-10-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多