2012-08-07 246 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

相關問題