2011-12-22 9 views
0

私は大部分がオープンソースですが、リリース前にsrc/main/javaフォルダを削除する必要がある独自のモジュール(コンパイラ)を1つ備えたマルチモジュールプロジェクトを持っています。プロプライエタリなモジュールは、オリジナルのjarからコンパイラを呼び出す必要がある他のモジュールによって使用される難読化されたjarファイルをビルドして、リリースの他のすべてをビルドします。これらのうちの1つは、システムの残りの部分をコンパイルするために使用されるmojoです。したがって、独自のソースを削除した後、バイナリのみの難読化されたコンパイラジャーを使用して、ユーザがシステムの非所有部分をコンパイルできるように、動作するmojoを使う必要があります。独自のソースをプロプライエタリなモジュールから削除する

独自のモジュール "compiler"を呼び出し、難読化されたjarファイルを "compiler.jar"として呼び出します。私は別のモジュール "compiler-bin"と "compiler.jar"を依存関係として使う必要があると思います。compiler.jarをリポジトリに新しい名前 "compiler-bin.jar"で追加してから、すべてを変更します(moj​​o、等)は、compiler.jarの代わりにcompiler-bin.jarに依存しています。その後、ツリー全体を複製し、コンパイラソースモジュールを手動で削除し、ポームを手で微調整して破損を修復します。それはかなりの仕事のビットになる。

私は、さらに手を動かさずに構築できる配布用ツリー(独自のソースはありません)を作成するために、元のツリーの新しいコピーを(すべてのソースを使用して)派生させることを望んでいます。

答えて

0

アーティファクト用に特別なパッケージングが必要な場合は、maven-assembly-pluginを使用して独自のアセンブリを作成する必要があります。例えば、ここで

ルック - >https://stackoverflow.com/a/7838060/185722

0

絶望的に複雑なプラグインMavenのアセンブリは、その後、より良い方法を見つけましたが見つかりました。

私は、リリースしているトランクに基づいてsvnブランチを作成し、ブランチ内の不要なフォルダを削除し、トランクに保持します。次に、調整する必要があるものをテストして調整します(例えば、親ポームの子リンクを削除します)。次にmvnのバージョン番号をmavenのリリース番号に割り当てます(mavenリリースのプラグインを避けてください):set -DnewVersion = whatever。ブランチをコミットし、ビルド結果をアップロードすれば完了です。

関連する問題