Maven assembly ignores parent dependencies

My build descriptor applies those included and excludes correctness when dependencies are directly included in the pom file.

However, when I put the dependencies in the parent pom file, the assembly: directory target report indicates that inclusions and exceptions were not triggered.

Do you know why maven-assembly-plugin ignores parent dependencies? How can i fix this?

Here are the maven and assembly descriptors:

Assembly descriptor:

<assembly> <id>distribution</id> <formats> <format>zip</format> </formats> <fileSets> <fileSet> <includes> <include>readme.txt</include> </includes> </fileSet> <fileSet> <directory>target</directory> <outputDirectory>/lib</outputDirectory> <includes> <include>*.jar</include> </includes> </fileSet> </fileSets> <dependencySets> <dependencySet> <outputDirectory>/lib</outputDirectory> <unpack>false</unpack> <scope>runtime</scope> <excludes> <exclude>org.tanukisoftware:wrapper:exe:3.3.5</exclude> </excludes> </dependencySet> <dependencySet> <outputDirectory>/bin</outputDirectory> <unpack>false</unpack> <scope>runtime</scope> <includes> <include>org.tanukisoftware:wrapper:exe:3.3.5</include> </includes> </dependencySet> </dependencySets> </assembly> 

The definition of the child POM build plugin:

  <plugin> <artifactId>maven-assembly-plugin</artifactId> <configuration> <ignoreDirFormatExtensions>true</ignoreDirFormatExtensions> <descriptors> <descriptor>assembly.xml</descriptor> </descriptors> </configuration> <executions> <execution> <id>make-assembly</id> <phase>package</phase> <goals> <goal>directory</goal> </goals> </execution> </executions> </plugin> 

POM POM dependencies:

 <dependencies> <dependency> <groupId>org.tanukisoftware</groupId> <artifactId>wrapper</artifactId> <version>3.3.5</version> <type>dll</type> <scope>runtime</scope> </dependency> <dependency> <groupId>org.tanukisoftware</groupId> <artifactId>wrapper</artifactId> <version>3.3.5</version> <type>exe</type> <scope>runtime</scope> </dependency> <dependency> <groupId>org.tanukisoftware</groupId> <artifactId>wrapper</artifactId> <version>3.3.5</version> <scope>runtime</scope> </dependency> </dependencies> 

Build Report Alerts:

 [assembly:directory {execution: make-assembly}] Reading assembly descriptor: assembly.xml Processing DependencySet (output=/lib) [WARNING] The following patterns were never triggered in this artifact exclusion filter: o 'org.tanukisoftware:wrapper:exe:3.3.5' Processing DependencySet (output=/bin) [WARNING] The following patterns were never triggered in this artifact inclusion filter: o 'org.tanukisoftware:wrapper:exe:3.3.5' 
+6
maven maven-2 maven-assembly-plugin
source share
1 answer

I don’t know if this will help, but what I always do is in the parent pom put the dependencies in the dependencyManagement block;

  <dependencyManagement> <!-- dependencies with exclusions --> <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> <version>${version.springframework}</version> <exclusions> <exclusion> <groupId>commons-logging</groupId> <artifactId>commons-logging</artifactId> </exclusion> </exclusions> </dependency> 

Then in the child pom list the dependencies again, but without version and exceptions

  <dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-aop</artifactId> </dependency> 

But honestly, for my first and only build, I could not get it to work in the child module and put it in the parent pom. Here is my build file for creating a zip file for a separate java program executed by cron:

 <?xml version="1.0" encoding="UTF-8"?> <assembly> <id>${project.layer}-both</id> <formats> <format>zip</format> </formats> <includeBaseDirectory>false</includeBaseDirectory> <baseDirectory>/</baseDirectory> <moduleSets> <moduleSet> <includes> <include>edu.berkeley.ist.cars:cars_upload</include> </includes> <binaries> <unpack>false</unpack> <useStrictFiltering>true</useStrictFiltering> <includeDependencies>true</includeDependencies> <outputDirectory>upload</outputDirectory> </binaries> </moduleSet> <moduleSet> <includes> <include>edu.berkeley.ist.cars:cars_download</include> </includes> <binaries> <unpack>false</unpack> <useStrictFiltering>true</useStrictFiltering> <includeDependencies>true</includeDependencies> <outputDirectory>download</outputDirectory> </binaries> </moduleSet> </moduleSets> <!-- crontab.txt is put in twice, in both upload and download, just in case. --> <files> <!-- upload files --> <file> <source>src/stuff/scripts/cars_upload.sh</source> <lineEnding>unix</lineEnding> <filtered>true</filtered> <outputDirectory>upload</outputDirectory> </file> <file> <source>src/stuff/notes/crontab-${project.layer}.txt</source> <destName>crontab.txt</destName> <lineEnding>unix</lineEnding> <filtered>true</filtered> <outputDirectory>upload</outputDirectory> </file> <!-- download files --> <file> <source>src/stuff/scripts/cars_download.sh</source> <lineEnding>unix</lineEnding> <filtered>true</filtered> <outputDirectory>download</outputDirectory> </file> <file> <source>src/stuff/notes/crontab-${project.layer}.txt</source> <destName>crontab.txt</destName> <lineEnding>unix</lineEnding> <filtered>true</filtered> <outputDirectory>download</outputDirectory> </file> </files> </assembly> 

The zip file has two top-level directories, download and download.

+6
source share

All Articles