我不喜欢在源代码修订系统中管理存储jar。我理解为什么,但是SCM系统不适合存储大型二进制对象。
以下是一些可供选择的选项,用于使构建在多台机器上可重复:
选项1:创建一个“引导”目标
使用ANT
get task
将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>
这个选项看起来更复杂,但它可以用于管理所有第三方罐子。它还可以理解一个jar对其他jar可能具有的传递依赖关系。
选项3:声纳
我不知道你是否听说过
Sonar
项目
可以使用选项1或2安装单个jar文件,这将自动下载以下分析工具所需的jar:
非常值得调查!