The problem lies in the wildcards I used. Wildcards don't seem to work as advertised. Maybe assembly doesn't support simple groupId wildcards in the form of groupId:*? Instead, I have to manually list every single module to exclude, which means I'm repeating myself since this list mirrors the dependencies I've already declared in the .pom. I now have to remember to update both my .pom and my assembly .xml whenever I add a module to the webstart deploy.

 - Andy


Andy DePue wrote:
Short version: I have a module in a multi-module maven build that depends on other modules in the same project. I'd like to merge all 3rd party transitive dependencies into a single .jar, but NOT include any dependencies from the project in that .jar. I can't find a way to get the assembly plugin to do this.

Long version: I have a multi-module maven build, which produces a .jar for each module (this is good). Now I'd like to merge all 3rd party dependencies into a single jar. I'm deploying my app via webstart, and the idea is that the modules of the app will change frequently, so they need to be downloaded separately, but 3rd party dependencies will not change often, and it is faster to download them all in one merged .jar via webstart. In the end, I want something like this:

 my-app-module1.jar
 my-app-module2.jar
 3rdpartylibs.jar

My master .pom includes a modules section that looks something like this:

<modules>
 <module>my-app-module1</module>
 <module>my-app-module2</module>
 <module>3rdpartylibs</module>
</modules>

The only dependencies declared by the 3rdpartylibs module are on the other two modules (my-app-module1, my-app-module2). I'd like the transitive dependency feature of maven to pick up all the other dependencies. I use the assembly plugin with the assembly definition below. The idea is that it will pick up all dependencies, including transitive, and then filter out all my project's artifacts via the <exclude>com.myGroupId:*</exclude>. Instead, it includes ALL dependencies, including the two modules (which are in the com.myGroupId group). It's as if the <exclude> was completely ignored.

<assembly>
 <id>3rd-party-dependencies</id>
 <formats>
   <format>jar</format>
 </formats>
 <includeBaseDirectory>false</includeBaseDirectory>
 <dependencySets>
   <dependencySet>
     <excludes>
       <exclude>com.myGroupId:*</exclude>
     </excludes>
     <outputDirectory>/</outputDirectory>
     <unpack>true</unpack>
     <scope>runtime</scope>
   </dependencySet>
 </dependencySets>
</assembly>

I'm new to maven, so I might be missing something here. Any help is appreciated.

Thanks,
 Andy


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]




---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to