2016-04-26 11 views
1

私はMavenのアーティファクト・バージョンのに関する別のフォルダにアップロードし、そのフォルダ内に生成風味瓶/戦争/ AARSを持つことができる方法を理解しようとしているいくつかの問題を抱えています。アップロードする方法Mavenアーティファクトのバージョンに応じて、異なるフォルダにアーカイブしますか?

例えば、私はversion 1.0.0groupId com.exampleでアーティファクトを得ました。 問題フォルダ構造ネクサスにこれをアップロードする際は、com/example/10-flavor1com/example/10-flavor2されて終わるということです。ここで

は、私はGradleの中で得たものである:

uploadArchives { 
    repositories { 
     mavenDeployer { 
      repository(url:"http:/nexus/content/repositories/releases/") { 
       authentication(userName: "username", password:"password") 
      } 

      addFilter('flavor1Release') { artifact, file -> 
       artifact.attributes.classifier.equals("flavor1Release") 
      } 
      addFilter('flavor2Release') { artifact, file -> 
       artifact.attributes.classifier.equals("flavor2Release") 
      } 

      pom('flavor1').artifactId = "artifactExample" 
      pom('flavor1').version = "1.0.0" 
      pom('flavor1').groupId = "com.example" 

      pom('flavor2').artifactId = "artifactExample" 
      pom('flavor2').version = "1.0.0" 
      pom('flavor2').groupId = "com.example" 
     } 
    } 
} 

ので、我々はそれぞれのアーティファクトのために作成する必要があり、正確なフォルダを渡すことができますリポジトリのリクエストをカスタマイズする方法がある場合、私は思っていました。 または本当に仕事をすることができるもの。

答えて

2

これはMaven CoordinatesgroupId:artifactId:versionの理念に反している:

Mavenのは、我々が扱っている人知らせるプロジェクトの特定のバージョンにポイント上に与えられた三つの要素、...

プロジェクトのためのユニークな位置を定義する座標。座標、Mavenを確認するには [...] は、3つのコンポーネントで構成されています...

<packaging>タイプの座標、例えばの一部ではありません。

com.example:artifact1:1.0.0:jar 
com.example:artifact2:1.0.0:war 

になってきてリポジトリのフォルダとファイル:

+- com/example/artifact1/1.0.0 
    +- artifact1-1.0.0.pom 
    +- artifact1-1.0.0.jar 
+- com/example/artifact2/1.0.0 
    +- artifact2-1.0.0.pom 
    +- artifact2-1.0.0.war 

したいながら:

なっ210
com.example:artifactExample:1.0.0:jar 
com.example:artifactExample:1.0.0:war 

+- com/example/artifactExample/1.0.0 
    +- jar 
     +- artifactExample-1.0.0.pom 
     +- artifactExample-1.0.0.jar 
    +- war 
     +- artifactExample-1.0.0.pom 
     +- artifactExample-1.0.0.war 

以外の座標の一部ではない<packaging>タイプから(したがって、得られたフォルダ構造)我々が別の問題を参照してください。私たちは、同じ座標一方を有する2つのPOMを有するであろう座標は識別することを意図している、すなわち一意である。

+0

のGeroldに答えるためのおかげで。私が知りたいのは、製品フレーバーをアーティファクトの一部として使用することができるかどうかということです。そのため、特定の場所を持つことができます。パッケージについては気にしないでください。 'com/example/artifactExample/flavor/1.0.0'のようなものです。 –

+0

** 2つの異なるプロジェクト/ POM(異なる座標には異なるプロジェクトが必要です):1) ' com.example.artifactExample.jar/ artifactexample-jar'と2)' com.example.artifactExample。戦争/ 人工物戦争 - 戦争 '。 「」の接尾辞 '...- jar'と' ...- war'を使用するかどうかを議論することができます。私は味のジャーを簡単に区別するためにそれらを好むでしょう。 –

+0

ええ、私はgroupIdを変更せずにやりたかったのです。それが可能になるとは思わない。 –

関連する問題