6

私は最近、BlackBerryが同じ完全修飾名のすべてのクラスを同一のものとして扱うことを発見しました-それらが完全に異なるアプリにあるかどうかに関係なく-異なるバージョンの共有ライブラリを使用するアプリは、それらがインストールされたときに壊れます同じ電話。

この問題を解決するために、パッケージ名を変更してバージョン番号を含めてからビルドすることを計画しています。誰かがBambooを使用して、ビルドプロセスに次のようなステップを挿入する方法を説明できますか?

  • 特定のパッケージ名を変更します
  • 古いパッケージ名へのすべてのコード参照を新しいパッケージ名への参照に置き換えますか?
4

2 に答える 2

2

jar ファイル内の Java クラスの完全修飾名を変更するタスクのために特別に作成された優れたツールは、jarjarです。Ant 内から、またはシェル スクリプトから簡単に使用できます。

私は Bamboo を使用したことがありません - そこでも動作するはずです。もちろん、その環境には(バイトコード操作に関して)いくつかの特別な制限があるかもしれませんが、私は知りません(?)

于 2011-03-04T21:10:39.573 に答える
2

私は Bamboo に詳しくないので、ビルド システムに関する情報があまり含まれていませんでした。Maven を使用している場合は、shade プラグインを使用できます。

このプラグインは、アーティファクトをその依存関係を含めて uber-jar にパッケージ化し、一部の依存関係のパッケージをシェーディング (名前変更) する機能を提供します。

2 番目のは、パッケージの名前変更を構成する方法を示しています。結果のjarファイルは、Chris Lerchersの回答に対するコメントのように、rapcで処理する必要があります。exec pluginを使用して、これを Maven ビルドに統合することもできるはずです。

于 2011-03-10T19:41:05.450 に答える