0

次のコマンドを使用して、Windows で更新サイトをミラーリングしようとしています。

eclipsec -nosplash -verbose -application org.eclipse.equinox.p2.artifact.repository.mirrorApplication -writeMode clean -source http://download.eclipse.org/technology/m2e/releases/1.1/1.1.0.20120530-0009 -destination file:/C:/m2ecore
eclipsec -nosplash -verbose -application org.eclipse.equinox.p2.metadata.repository.mirrorApplication -writeMode clean -source http://download.eclipse.org/technology/m2e/releases/1.1/1.1.0.20120530-0009 -destination file:/C:/m2ecore

これは機能しますが、正規の形式と圧縮された形式の両方で、すべてのアーティファクトを 2 回ダウンロードします。例えば:

Mirroring: osgi.bundle,org.eclipse.m2e.editor.source,1.1.0.20120530-0009 (Descriptor: packed: osgi.bundle,org.eclipse.m2e.editor.source,1.1.0.20120530-0009)
Mirroring: osgi.bundle,org.eclipse.m2e.editor.source,1.1.0.20120530-0009 (Descriptor: canonical: osgi.bundle,org.eclipse.m2e.editor.source,1.1.0.20120530-0009)

正規の形式のみをミラーリングするように指定する方法はありますか?
何かのようなもの-filter (!format=packed)

私は、 artifacts.xmlにフィルターがあり、p2 アプリケーションがフィルタースイッチをサポートしているように見えることに気付きました。LDAP クエリのように見えますが、コマンド ラインからは認識されません。

フィルタリングできない場合、ローカル リポジトリを安全に変更して、パックされたファイルをメタデータから削除するにはどうすればよいですか? XML を手作業で編集するのは、あまり良い考えではないようです。


編集:手動で行いました。誰かが不要なダウンロードを避けるためにフィルタリングする方法を知っている場合に備えて、質問を開いたままにしておきます

C:\m2ecoreに移動し、 artifacts.jarを解凍してから削除します。artifacts.xmlのプロパティセクションを
編集します。

Remove the line <property name='publishPackFilesAsSiblings' value='true'/>
Adjust the properties size parameter (e.g: from 3 to 2)

artifacts.xmlのマッピングセクションを編集します。

Remove the line <rule filter='(&amp; (classifier=osgi.bundle) (format=packed))' output='${repoUrl}/plugins/${id}_${version}.jar.pack.gz'/>
Remove the line <rule filter='(&amp; (classifier=org.eclipse.update.feature) (format=packed))' output='${repoUrl}/features/${id}_${version}.jar.pack.gz'/>
Adjust the mappings size parameter (e.g.: from 5 to 3)

パックされたアーティファクト メタデータをすべて削除する

Use an editor with regex support to clear all matches of:
<artifact[\s]+[^>]*>(.(?!<[/]?artifact>))+Pack200Unpacker(.(?!<[/]?artifact>))+[\s]*</artifact>

To clear the blank lines, first regex replace with empty strings the matches of:  
^[\s]*$
and then do an extended replace from \r\n\r\n to \r\n

Modify the total artifacts count by searching for matches of:
<artifact[\s]+[^>]*>

artifacts.xmlをartifacts.zipに圧縮し、その名前をartifacts.jarに変更します
ツリーからすべての _*.pack.gz_ ファイルを削除します。

4

1 に答える 1

0

スタンドアロン ミラー アプリケーションの機能は限られているため、p2 ant タスクを使用して必要なものを取得できます。

于 2012-08-02T02:26:33.040 に答える