5

Maven2的隐藏特性是什么?

4

5 回答 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 文件夹)

于 2008-11-22T12:24:40.660 回答
4

看看dependency:analyze。

于 2009-04-11T00:00:51.150 回答
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 中修改它,你就完成了。

于 2009-04-11T01:54:14.123 回答
1

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

添加到您的 pom.xml:

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

然后运行​​mvn dependency:resolvemvn dependency:build-classpath来测试它。

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

于 2008-11-22T11:58:50.993 回答
1
  1. 项目继承
  2. 项目聚合
  3. 组装:组装
  4. 报告(findbugs、checkstyle、clover、pmd 等)
于 2009-04-11T01:39:47.577 回答