Maven2有哪些隐藏功能?

5

Maven2有哪些隐藏功能?


3
由于文档太糟糕,每个功能几乎都被隐藏了。 - Dónal
5个回答

6
你可以使用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文件夹中创建,适用于所有操作系统)


4
请参考dependency:analyze。

2
有时您会有一个文件,需要包含一些只能在构建时发现的值。也许您有一个Java类,检查评估期是否结束,并将该期定义为“编译后30天”。您需要一种方式将当前日期或其他属性直接注入到构建中。
Maven有一个很酷的隐藏功能,称为过滤器(此处的文档)。通过过滤,您可以要求Maven查找某些源文件中的模式并将其替换为某个值,而且激活它就像这样简单:
  <build>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
      </resource>
    </resources>
  </build>

你可以将什么插入到过滤器中?任何环境变量,大多数pom文件中的值以及有关Java编译器的信息。如果您在Maven中更改版本号,您就不必去找到whatever.properties文件并在那里更新版本号。您只需在Maven中修改它,就完成了。

"Maven有一个很酷的隐藏功能,叫做过滤(文档在这里)。哈哈,它是隐藏的,但已经被记录了。" - Brian Fox
隐藏和记录并不是互相排斥的。如果你不知道它的存在,你就不会想去查找文档。因此,它只能被发现,而被发现的是什么?隐藏的东西。这就像Java中的标记块。完全记录在案。但大多数人并不知道。 - Brandon Yarbrough

1
  1. 项目继承
  2. 项目聚合
  3. 组装:组装
  4. 报告(findbugs、checkstyle、clover、pmd等)

1
使用maven-dependency-plugin可以解决依赖冲突和循环依赖问题。
在你的pom.xml中添加以下内容:
<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-dependency-plugin</artifactId>
</plugin>

然后运行或来测试它。
更多关于依赖插件的信息: http://maven.apache.org/plugins/maven-dependency-plugin/howto.html

我非常确定您不需要编辑您的pom.xml文件来完成此操作。 - lindelof
实际上,如果名称匹配,Maven会自动下载任何插件。然而,最好的做法是将其添加到POM中,并特别包括一个特定版本(我忘记了)以避免后来在不同环境中出现意外情况。 - Kuukage
依赖树在处理多模块项目时通常是一个救命稻草。 - sal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接