2012-08-07 154 views
0

我想将PMD jar添加到ant构建中,但我想在jar中检查源代码控制,以便其他开发人员不必修改其环境。因此,复制到ant lib文件夹不是理想的情况。是否有另一种方法将该jar文件添加到ant类路径中?是否可以将jar文件添加到build.xml中的ant类路径中?

+0

如何检查实用程序库到'util/lib'?并在你的'build.xml'中引用它们。这样,每个接受结账的人都会得到正确的JAR文件。 – 2012-08-07 14:29:14

+0

难道只是将它们添加到javac的类路径中,而不是实际的ant类路径? – 2012-08-07 14:48:46

+0

如果你的意思是Ant应该能够使用PMD任务,那么我相信任务就是要走的路。如果这不是你的意思,那么我没有正确理解你的问题。 – 2012-08-08 05:49:40

回答

1

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

下面是使整个机器你的build重复的几个备选方案:

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

使用Ant get task下载PMD罐子成ANT访问的目录,即$ HOME /赵军阳张志利/ 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)

使用常春藤的优点是,它可以用来管理你所有的编译类路径(使用配置):

<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可能在其他jar上传递的依赖关系的好处。

方案3:声纳

我不知道你是否听说过Sonar项目?

一个JAR文件,可以使用选项1或2进行安装,这将自动下载下面的分析工具所需要的罐子:

  • PMD
  • FindBugs的
  • 的Checkstyle

非常值得调查!

+0

Thx我可能会使用Option 1.顺便说一句,我完全同意不在SCM中存储jar,但这是我从另一个团队继承的项目,需要一个停止间隔衡量,直到我能说服人们放弃蚂蚁并去找maven。 – 2012-08-08 13:18:31

+0

@UsmanIsmail了解。除非你有一个冒险的开发团队,否则你会发现Maven会很难卖。这就是为什么我喜欢用常青藤作为制造缺口。另一个需要考虑的构建工具是Gradle。它对ANT有更好的支持,并且可以支持以婴儿为步骤的方法,使开发者脱离ANT :-) – 2012-08-08 17:15:17

相关问题