我正在拼命地嘗試使用此工作。我花了整整一天的時間,無法找到問題所在。在IVY中使用狀態,適用於「不太穩定的」(即整合),而不適用於其他(即里程碑和版本)
看來,IVY只能解決狀態列表中「不太穩定的狀態」,即對於默認狀態,只有集成不是里程碑或釋放。
這是一個測試ant文件。
<project name="helicopter" basedir="." xmlns:ivy="antlib:org.apache.ivy.ant">
<ivy:settings file="ivysettings.xml" id="ivy.instance"/>
<!-- the call to resolve is not mandatory, retrieve makes an implicit call if we don't -->
<ivy:resolve file="ivy.xml" />
<ivy:retrieve type="swc" pattern="../libs/bin/[module]-[revision].[ext]" />
<ivy:retrieve type="src" pattern="../libs/src/[module]-[revision].[ext]" />
</project>
這是ivysettings.xml
<?xml version="1.0" encoding="UTF-8"?>
<ivysettings>
<settings defaultResolver="local" />
<resolvers>
<filesystem
name="local"
checkmodified="true">
<artifact pattern="C:/repository/[organisation]/[module]/[revision]/[artifact].[ext]" />
</filesystem>
</resolvers>
</ivysettings>
這是的ivy.xml
<ivy-module
version="2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://ant.apache.org/ivy/schemas/ivy.xsd"
>
<info
organisation="com.org"
module="moduleA"
status="integration"
/>
<publications>
<artifact type="swf" ext="swf" />
<artifact type="src" ext="src.zip" />
</publications>
<dependencies>
<dependency org="com.org" name="moduleB" rev="latest.integration">
<artifact name="moduleB" type="swc" ext="swc" />
<artifact name="moduleB" type="src" ext="src.zip" />
</dependency>
</dependencies>
</ivy-module>
與存儲庫(文件夾)的moduleB的ivy.xml
<info organisation="com.org" module="moduleB" revision="0.0.5.0" status="integration" publication="20111201174403"/>
<publications>
<artifact type="swc" ext="swc"/>
<artifact type="src" ext="src.zip"/>
</publications>
<dependencies>
</dependencies>
因此,這將工作,moduleB將被下載所有權利。
現在如果我編輯的ivy.xml得到latest.milestone
<info
organisation="com.org"
module="moduleA"
status="integration"
/>
<publications>
<artifact type="swf" ext="swf" />
<artifact type="src" ext="src.zip" />
</publications>
<dependencies>
<dependency org="com.org" name="moduleB" rev="latest.milestone">
<artifact name="moduleB" type="swc" ext="swc" />
<artifact name="moduleB" type="src" ext="src.zip" />
</dependency>
</dependencies>
</ivy-module>
和編輯我發表的moduleB(因此編輯在儲存庫文件夾)的的ivy.xml是地位的里程碑
<info organisation="com.org" module="moduleB" revision="0.0.5.0" status="milestone" publication="20111201174403"/>
<publications>
<artifact type="swc" ext="swc"/>
<artifact type="src" ext="src.zip"/>
</publications>
<dependencies>
</dependencies>
它不會工作,神器不會被發現,雖然上市
:: problems summary ::
:::: WARNINGS
module not found: com.org#moduleB;latest.milestone
==== local: tried
-- artifact com.org#moduleB;latest.milestone!moduleB.src.zip(src):
C:/repository/com.org/moduleB/revision]/moduleB.src.zip
[0.0.5.0 (MD)]
-- artifact com.org#moduleB;latest.milestone!moduleB.swc:
C:/repository/com.org/moduleB/[revision]/moduleB.swc
[0.0.5.0 (MD)]
現在的樂趣! 在使用IVY的默認狀態之前,我使用了我的。 它具有完全相同的行爲(這就是爲什麼我嘗試了默認值之一)。 樂趣位的是,如果我有
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-test" integration="false"/>
<status name="status-dev" integration="true" />
</statuses>
唯一的最新產品。[狀態]工作將是狀態-dev的。現在 如果我更改了狀態,以
<statuses default="status-dev">
<status name="status-stable" integration="false"/>
<status name="status-dev" integration="true" />
<status name="status-test" integration="false"/>
</statuses>
唯一一個工作將是狀態測試。
我」困惑在這裏...:/
感謝所有幫助您可以提供。 歡呼聲, Xavier
我已經創建了一個顯示怪異行爲的基本項目。
moduleB
是正在發佈的模塊。
moduleA
是作爲依賴關係獲取moduleB
的模塊。
請更新路徑到本地倉庫兩個ivysettings
文件
鏈接下載文件
https://rapidshare.com/files/1326835940/test_ivy.zip
如果使用狀態它可能會幫助清除常春藤緩存發揮各地。也許緩存包含ivy.xml的舊版本。 – oers
您好,感謝您的評論,但唉,我已經清除了許多次緩存,手動或通過一個螞蟻任務 。 謝謝你的評論,雖然 –
nolazybits