2016-06-19 6 views
0

Mavenを使用して構築されたMavenアーティファクトをNexusに配備し、Jenkinsの次のMavenコマンドを使用してNexusを配備しています。Nexusでのリポジトリレイアウトの変更

org.apache.maven.plugins:maven-deploy-plugin:2.7:deploy-file 

file=abc.ear 
groupId=myGroup 
artifactId=ModuleA 
version=1.0 
url=${NEXUS_URL}/dev-repository 
repositoryId=dev-repository 

私は複数のモジュールを展開しており、3つのモジュールに対して上記のコマンドを3回呼び出しています。 Nexusの結果のレポ構造は次のようになります。

myGroup 
| 
-ModuleA 
| 
-1.0 
    | 
    -abc.ear 
-ModuleB 
| 
-1.0 
    | 
    -abc.ear 
-ModuleC 
| 
-1.0 
    | 
    -abc.ear 

これまでのところ、これほど良いです。

myGroup 
| 
-1.0 
| 
-ModuleA 
    -abc.ear 
-ModuleB 
    -abc.ear 
-ModuleC 
    -abc.ear 

どのように私はこれを達成することができます - しかし、私のような構造を有することを好むでしょうか?私は、 'repositoryLayout'を参照しているmaven-deploy-pluginのドキュメントを見ています。この特定のフォルダ構造を取得するためにどうすれば使用できますか?

+0

最初に手動でデプロイファイルを実行している場合は、何か問題があるように思えます。 'mvn deploy'それだけです...あなたがEARで作業している場合は、通常、EJB、JAR、または複数のEARのような異なるモジュールを含むマルチモジュールビルドがあります。 'mvn deploy'経由でも展開できる単一のツリー.... – khmarbaise

+0

フィードバックありがとうございます。これは有効な点ですが、単純な「配備」を使用しない理由があります。それは質問の範囲外になり、したがってこのスレッドにコメントしたくないでしょう。 – mmukhe

答えて

1

mavenについての私の知る限り、それは標準的なレイアウトであり、標準のMavenプラグインでカスタマイズすることはできません。

Mavenは '既定の'リポジトリレイアウトに切り替わり、maven2は古いバージョンの「レガシー」レイアウトにアーティファクトを展開するために使用されました。これら二つはあなたが何をしたいのための標準的なMavenプラグインを使用することはできません

Details about difference in legacy and default layout

maven-deploy-plugin legacy layout箱から出してサポートされる唯一のレイアウトです。理論的には、ArtifactRepositoryLayoutインターフェイスを実装することでそれを達成できるはずです。 https://kthoms.wordpress.com/2009/10/13/how-to-register-a-custom-maven-repository-layout/

+0

ヘルプRiteshに感謝します。あなたは正しい方向に私を指しているようです。しかし、非標準的なソリューションの実装の複雑さを考えると、私はこのルートを下ることをためらっています。それにもかかわらず、もう一度ありがとう! – mmukhe

関連する問題