Maven2的隐藏功能有哪些?

时间:2008-11-22 11:52:57

标签: java apache maven-2 dependency-management

Maven2有哪些隐藏功能?

5 个答案:

答案 0 :(得分: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文件夹中创建)

答案 1 :(得分:4)

看看依赖:分析。

答案 2 :(得分:2)

有时你有一个文件需要包含一些只能在构建时发现的值。也许您有一个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中修改它,然后就完成了。

答案 3 :(得分:1)

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

添加到您的pom.xml:

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

然后运行 mvn依赖:解决 mvn依赖:build-classpath 来测试它。

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

答案 4 :(得分:1)

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