0

我想将 PMD jar 添加到 ant 构建中,但我想将 jar 签入到源代码控制中,这样其他开发人员就不必修改他们的环境。因此复制到 ant lib 文件夹不是理想的情况。还有另一种方法可以将该 jar 文件添加到 ant 类路径中吗?

4

1 回答 1

1

我不喜欢在源代码修订系统中管理存储 jar。我明白为什么,但是 SCM 系统不适合存储大型二进制对象。

以下是使您的构建可跨机器重复的一些替代选项:

选项 1:创建“引导”目标

使用 ANT get 任务将 PMD jar 下载到 ANT 可访问的目录中,即 $HOME/.ant/lib:

<target name="bootstrap" description="Install jars required by build">
    <mkdir dir="${user.home}/.ant/lib"/>
    <get src="http://search.maven.org/remotecontent?filepath=pmd/pmd/4.3/pmd-4.3.jar" dest="${user.home}/.ant/lib/pmd.jar"/>
</target>

选项 2:使用依赖管理

Ivy可用于管理所有构建的依赖项(类似于 Maven)

使用 ivy 的优点是它可以用来管理你所有的构建类路径(使用配置):

<target name="resolve" description="Use ivy to resolve classpaths">
    <ivy:resolve/>

    <ivy:cachepath pathid="compile.path" conf="compile"/>
    <ivy:cachepath pathid="build.path" conf="build"/>
</target>

然后,一个名为ivy.xml的文件将列出您的项目的依赖项

<ivy-module version="2.0">
    <info organisation="com.myspotontheweb" module="demo"/>

    <configurations>
        <conf name="compile" description="Required to compile application"/>
        <conf name="build"   description="Required by the ANT build"/>
    </configurations>

    <dependencies>
        <!-- compile dependencies -->
        <dependency org="org.slf4j" name="slf4j-api" rev="1.6.4" conf="compile->default"/>

        <!-- build dependencies -->
        <dependency org="pmd" name="pmd" rev="4.3" conf="build->default"/>    
    </dependencies>

</ivy-module>

此选项看起来更复杂,但它可用于管理所有 3rd 方 jar。它还具有了解 jar 可能对其他 jar 具有传递依赖关系的好处。

选项 3:声纳

不知道大家有没有听说过Sonar项目?

可以使用选项 1 或 2 安装单个 jar 文件,这将自动下载以下分析工具所需的 jar:

  • PMD
  • 查找错误
  • 格纹风格

很值得研究!

于 2012-08-07T18:07:10.520 回答