2013-05-15 11 views
9

Mavenアセンブリプラグインを使用して、Javaプロジェクトのバイナリをfat jar(jar-with-dependencies記述子)にパッケージングしています。これはかなりうまくいく。Maven:依存関係を持つソースコードを配布する

質問:コンパイルしたクラスファイルと一緒に私のプロジェクトのソースファイルを含めるにはどうしたらいいですか?私はMavenのドキュメントを調べて、その方法を見つけようとしましたが、何も見つかりませんでした。

ありがとうございます!

私のpom.xmlは、次のようになります。

<project> 
... 
    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <configuration> 
        <source>1.6</source> 
        <target>1.6</target> 
       </configuration> 
      </plugin> 
      <plugin> 
       <artifactId>maven-assembly-plugin</artifactId> 
       <configuration> 
        <descriptorRefs> 
         <descriptorRef>jar-with-dependencies</descriptorRef> 
        </descriptorRefs> 
        <finalName>${pom.artifactId}-${pom.version}</finalName> 
        <appendAssemblyId>false</appendAssemblyId> 
        <outputDirectory>${project.basedir}/bin/</outputDirectory> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

答えて

6

最も簡単な解決策は、事前に定義された記述子srcを使用することですか、事前に定義された記述子project使用する方がよいかもしれません:

<descriptorRefs> 
    <descriptorRef>jar-with-dependencies</descriptorRef> 
    <descriptorRef>src</descriptorRef> 
    </descriptorRefs> 

か他のオプションは次のようになります:

<descriptorRefs> 
    <descriptorRef>jar-with-dependencies</descriptorRef> 
    <descriptorRef>project</descriptorRef> 
    </descriptorRefs> 
+0

ありがとうございます!ソースを同じ瓶にパッケージングする予定だったので、これは私が気にしていたものではありませんが、おそらくこれで十分です。 – Johannes

+0

少し異なります。私はこれをリリースの場合にのみ行うことを提案し、あなたの会社のpomのリリース構成でそのような目的のためにmaven-source-pluginを使用します。これにより、すべてのSNAPSHOT展開でソースパッケージを作成できるようになります。それはあなたが行くのが好きな方法を選択するあなたの番です。 – khmarbaise

3

あなたがバイナリとソースコードを太った瓶として配布することを選択したという明確な要件はありますか?通常、バイナリとソースファイルは一緒に配布されますが、別々のjarファイルとして配布されます。 Maven Centralの多くのプロジェクトがこのアプローチを使用しており、NexusやArtifactoryなどのリポジトリもこれをサポートしています。このオプションを選択した場合、maven-source-pluginはあなたの友人です。 documentationから:その後、

<plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-source-plugin</artifactId> 
    <executions> 
    <execution> 
     <id>attach-sources</id> 
     <goals> 
     <goal>jar</goal> 
     </goals> 
    </execution> 
    </executions> 
</plugin> 

そしてmvn source:jarを実行します。 configuration optionsのウェブページを参照してください。

+0

チップをありがとう! hkmarbaiseによって指摘されているアセンブリプラグインのsrc記述子を使用することは、追加のプラグインを必要としないので少しシンプルです。 – Johannes

関連する問題