File the bug request against enforcer and let that move it *if* necessary
as initial evidence points to enforcer's issue


On 3 July 2013 13:40, Wolf Geldmacher <wolf.geldmac...@abacus.ch> wrote:

> Hi list.
>
> I just got hit by a weird interaction between two plugins, namely the
> maven-enforcer-plugin and the maven-assembly-plugin:
>
> I recently updated the versions for the plugins used in my build and
> suddenly the creation of an assembly broke with an NPE:
>
>> [ERROR] Failed to execute goal org.apache.maven.plugins:**
>> maven-assembly-plugin:2.4:**single (assemble) on project extjars:
>> Execution assemble of goal org.apache.maven.plugins:**
>> maven-assembly-plugin:2.4:**single failed. NullPointerException -> [Help
>> 1]
>>
> Now the strange part is, that the m-a-p version had not been updated and
> the assembly descriptor had not been changed.
>
> Further investigation revealed the update of m-e-p to be the cause of the
> error, as reverting to 1.2 (down from 1.3) magically made the build work
> again.
>
> I think this is a bug/regression that should be fixed, but: which of the
> plugins should I file the Jira against? Is the m-e-p destroying data that
> it should not touch or did the changed behaviour of m-e-p uncover a bug in
> m-a-p?
>
> If nothing else here's more proof of the necessity of nailing down all the
> versions to get a reproducible build...
>
> If you feel up to reproducing/analyzing the error here are the two (merged
> and stripped down) files required:
>
> pom.xml:
>
> <project 
> xmlns="http://maven.apache.**org/POM/4.0.0<http://maven.apache.org/POM/4.0.0>
> "
>          
> xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<http://www.w3.org/2001/XMLSchema-instance>
> "
>          
> xsi:schemaLocation="http://**maven.apache.org/POM/4.0.0<http://maven.apache.org/POM/4.0.0>
> http://maven.apache.org/xsd/**maven-4.0.0.xsd<http://maven.apache.org/xsd/maven-4.0.0.xsd>
> ">
>     <modelVersion>4.0.0</**modelVersion>
>
>     <properties>
> <plugins.maven-enforcer-**plugin.version>1.3</plugins.**
> maven-enforcer-plugin.version>
>     </properties>
>
>     <groupId>ch.pecunifex.maven</**groupId>
>     <artifactId>extjars</**artifactId>
>     <version>2014.0.0-SNAPSHOT</**version>
>     <packaging>pom</packaging>
>     <name>3rd-party Jars Assembly</name>
>     <description>
>         Collect all 3rd-party dependencies and assemble them for
> redistribution.
>     </description>
>
>     <prerequisites>
>         <maven>3.0</maven>
>     </prerequisites>
>
>     <dependencies>
>         <dependency>
>             <groupId>asm</groupId>
>             <artifactId>asm-commons</**artifactId>
>             <version>3.1</version>
>         </dependency>
>         <dependency>
>             <groupId>asm</groupId>
>             <artifactId>asm</artifactId>
>             <version>3.1</version>
>         </dependency>
>         <!-- ... -->
>     </dependencies>
>
>     <build>
>         <defaultGoal>package</**defaultGoal>
>         <plugins>
>                 <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-clean-**plugin</artifactId>
>                     <version>2.4.1</version>
>                 </plugin>
>                 <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-deploy-**plugin</artifactId>
>                     <version>2.7</version>
>                 </plugin>
>                 <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-install-**plugin</artifactId>
>                     <version>2.3.1</version>
>                 </plugin>
>                 <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-site-plugin<**/artifactId>
>                     <version>3.0</version>
>                 </plugin>
>             <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-assembly-**plugin</artifactId>
>                 <version>2.4</version>
>                 <executions>
>                     <execution>
>                         <id>assemble</id>
>                         <phase>package</phase>
> <goals><goal>single</goal></**goals>
>                         <configuration>
> <appendAssemblyId>false</**appendAssemblyId>
>                             <descriptors>
>                                 <descriptor>
>                                     extjars.xml
>                                 </descriptor>
>                             </descriptors>
>                         </configuration>
>                     </execution>
>                 </executions>
>             </plugin>
>             <plugin>
> <groupId>org.apache.maven.**plugins</groupId>
> <artifactId>maven-enforcer-**plugin</artifactId>
> <version>${plugins.maven-**enforcer-plugin.version}</**version>
>                 <executions>
>                     <execution>
>                         <id>enforce-plugin-versions</**id>
>                         <goals>
>                             <goal>enforce</goal>
>                         </goals>
>                         <configuration>
>                             <rules>
>                                 <requirePluginVersions>
>                                      <message>Best Practice is to always
> define plugin versions!</message>
>                                 </requirePluginVersions>
>                             </rules>
>                         </configuration>
>                     </execution>
>                 </executions>
>             </plugin>
>         </plugins>
>     </build>
> </project>
>
> extjars.xml:
>
> <assembly xmlns="http://maven.apache.**org/plugins/maven-assembly-**
> plugin/assembly/1.1.2<http://maven.apache.org/plugins/maven-assembly-plugin/assembly/1.1.2>
> "
>             
> xmlns:xsi="http://www.w3.org/**2001/XMLSchema-instance<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/plugins/maven-assembly-plugin/assembly/1.1.2>
> http://maven.apache.org/xsd/**assembly-1.1.2.xsd<http://maven.apache.org/xsd/assembly-1.1.2.xsd>
> ">
>     <id>extjars</id>
>     <formats>
>         <format>zip</format>
>     </formats>
>     <includeBaseDirectory>false</**includeBaseDirectory>
>
>     <dependencySets>
>         <dependencySet>
>             <outputDirectory>java/ext</**outputDirectory>
>             <fileMode>0644</fileMode>
>             <directoryMode>0755</**directoryMode>
> <useTransitiveDependencies>**false</**useTransitiveDependencies>
> <useProjectArtifact>false</**useProjectArtifact>
>
>             <includes>
> <include>asm:asm-commons:jar:**3.1</include>
>                 <include>asm:asm:jar:3.1</**include>
>             </includes>
>         </dependencySet>
>     </dependencySets>
> </assembly>
>
> When called via:
>     mvn -Dplugins.maven-enforcer-**plugin.version=1.2
> a zip file is generated as expected, when called via
>     mvn -Dplugins.maven-enforcer-**plugin.version=1.3
> (or without argument) you will get the NPE.
>
> Cheers,
> Wolf
>
> ------------------------------**------------------------------**---------
> To unsubscribe, e-mail: 
> users-unsubscribe@maven.**apache.org<users-unsubscr...@maven.apache.org>
> For additional commands, e-mail: users-h...@maven.apache.org
>
>

Reply via email to