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