Need to specify `<failOnChanges>false</failOnChanges>` for `biz.aQute.bnd:bnd-export-maven-plugin`
katcaola opened this issue · comments
When running mvn -pl rest-app package
per the Microservices tutorial, I get an error from the biz.aQute.bnd:bnd-export-maven-plugin
maven plugin.
usr@host:~/sandbox/OSGi/microservice$ mvn -pl rest-app package
<...>
[ERROR] Error : The runbundles have changed. Failing the build!
Was: null
Is: \
ch.qos.logback.classic;version='[1.2.3,1.2.4)',\
ch.qos.logback.core;version='[1.2.3,1.2.4)',\
org.apache.aries.javax.jax.rs-api;version='[1.0.0,1.0.1)',\
org.apache.aries.jax.rs.whiteboard;version='[1.0.1,1.0.2)',\
org.apache.felix.configadmin;version='[1.9.8,1.9.9)',\
org.apache.felix.http.jetty;version='[4.0.6,4.0.7)',\
org.apache.felix.http.servlet-api;version='[1.1.2,1.1.3)',\
org.apache.felix.scr;version='[2.1.10,2.1.11)',\
org.apache.servicemix.specs.annotation-api-1.3;version='[1.3.0,1.3.1)',\
org.apache.servicemix.specs.json-api-1.1;version='[2.9.0,2.9.1)',\
org.osgi.enroute.examples.microservice.dao-api;version='[0.0.1,0.0.2)',\
org.osgi.enroute.examples.microservice.dao-impl;version='[0.0.1,0.0.2)',\
org.osgi.enroute.examples.microservice.rest-service;version='[0.0.1,0.0.2)',\
org.osgi.service.jaxrs;version='[1.0.0,1.0.1)',\
org.osgi.util.converter;version='[1.0.0,1.0.1)',\
org.osgi.util.function;version='[1.1.0,1.1.1)',\
org.osgi.util.promise;version='[1.1.0,1.1.1)',\
slf4j.api;version='[1.7.25,1.7.26)',\
tx-control-provider-jdbc-xa;version='[1.0.0,1.0.1)',\
tx-control-service-xa;version='[1.0.0,1.0.1)'
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 3.970 s
[INFO] Finished at: 2019-01-18T13:44:07-05:00
[INFO] Final Memory: 25M/439M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal biz.aQute.bnd:bnd-export-maven-plugin:4.1.0:export
(default) on project rest-app: 1 errors found -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions,
please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
The biz.aQute.bnd:bnd-export-maven-plugin
has a feature where any change in the resolved -runbundles
discovered will fail the maven command. If failOnChanges
is unspecified, it defaults to true and causes the error seen above.
I'm not sure where in the osgi.enroute
project itself this would need to be fixed.
In the meantime, users can add the line
<failOnChanges>false</failOnChanges>
to their rest-app/pom.xml
(and also rest-app-jpa/pom.xml
) plugin section for biz.aQute.bnd:bnd-export-maven-plugin
so it goes from
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-export-maven-plugin</artifactId>
<configuration>
<bndruns>
<bndrun>rest-app.bndrun</bndrun>
</bndruns>
</configuration>
</plugin>
to include the new line
<plugin>
<groupId>biz.aQute.bnd</groupId>
<artifactId>bnd-export-maven-plugin</artifactId>
<configuration>
<failOnChanges>false</failOnChanges>
<bndruns>
<bndrun>rest-app.bndrun</bndrun>
</bndruns>
</configuration>
</plugin>