You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@maven.apache.org by "Karl Heinz Marbaise (JIRA)" <ji...@codehaus.org> on 2014/03/01 18:02:59 UTC

[jira] (MASSEMBLY-649) Assembly descriptor needs (or similar) to go with and

    [ https://jira.codehaus.org/browse/MASSEMBLY-649?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=342273#comment-342273 ] 

Karl Heinz Marbaise commented on MASSEMBLY-649:
-----------------------------------------------

With maven-assembly-plugin:2.4 this can be solved simpler with the following descriptor (which is not perfect and can be improved):
{code}
<assembly xmlns="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2 http://maven.apache.org/xsd/assembly-1.1.2.xsd">
  <id>sources</id>
  <formats>
    <format>zip</format>
  </formats>
  <includeBaseDirectory>false</includeBaseDirectory>

  <moduleSets>
    <moduleSet>
      <useAllReactorProjects>true</useAllReactorProjects>
      <excludes>
        <exclude>*:webgui:war:*</exclude>
        <exclude>*:app:ear:*</exclude>
        <exclude>*:service:ejb:*</exclude>
        <exclude>*:shade:jar:*</exclude>
      </excludes>
      <binaries>
        <includeDependencies>false</includeDependencies>
        <attachmentClassifier>sources</attachmentClassifier>
        <outputDirectory>sources</outputDirectory>
        <unpack>false</unpack>
      </binaries>
    </moduleSet>
  </moduleSets>
</assembly>
{code}
Unfortunately you have to define exclude rules for those modules which don't have attached sources packages. But no need to go via fileSet.


> Assembly descriptor needs <sourceBinaries> (or similar) to go with <binaries> and <sources>
> -------------------------------------------------------------------------------------------
>
>                 Key: MASSEMBLY-649
>                 URL: https://jira.codehaus.org/browse/MASSEMBLY-649
>             Project: Maven Assembly Plugin
>          Issue Type: Improvement
>            Reporter: Nicholas Williams
>
> Consider the following project structure:
> {noformat}
> - parent
>    - pom.xml
>    - assembly
>       - pom.xml
>    - module1
>       - pom.xml
>    - module2
>       - pom.xml
>    - module3
>       - pom.xml
> {noformat}
> As recommended [here|http://maven.apache.org/plugins/maven-assembly-plugin/faq.html#module-binaries], the "assembly" sub-project exists to run the assembly plugin during package phase and depends on module1, module2, and module3 to achieve this.
> Using {{<moduleSet>/<binaries>}} I can include all of the compiled binaries from module1, module2, and module3 in the assembly. Using {{<moduleSet>/<sources>}} I can likewise include all of the sources, but the problem is that {{<sources>}} actually includes the entire source directories including POM and project files for each module, which is not always desired.
> Modules 1-3 in this case use the maven-source-plugin to create source binaries ([artifactId]-[version]-sources.jar). I want to include those source JARs in the assembly. However, I cannot do this with {{<moduleSet>}} or with {{<dependencySet>}}. I have to add a {{<fileSet>}} for each module's lone source JAR, like so:
> {code:xml}
>     <fileSet>
>         <directory>../module1/target</directory>
>         <includes><include>*-sources.jar</include></includes>
>         <outputDirectory>/sources</outputDirectory>
>     </fileSet>
>     <fileSet>
>         <directory>../module2/target</directory>
>         <includes><include>*-sources.jar</include></includes>
>         <outputDirectory>/sources</outputDirectory>
>     </fileSet>
>     <fileSet>
>         <directory>../module3/target</directory>
>         <includes><include>*-sources.jar</include></includes>
>         <outputDirectory>/sources</outputDirectory>
>     </fileSet>
> {code}
> This gets tedious with many modules (and really shouldn't be necessary). We either need a {{<sourceBinaries>}} option that works similarly to {{<binaries>}} except on source JARs, or {{<binaries>}} needs to be changed to optionally support source JARs.



--
This message was sent by Atlassian JIRA
(v6.1.6#6162)