On Wed 12 Apr 2017 at 20:21, Dirk Mahler <dirk.mah...@buschmais.com> wrote:
> Hi Bindul, > > sadly it's not that easy (or it's so easy that I don't see the > solution...). As a default and for compatibility reasons I'd like to > declare the dependencies of the Neo4j 2.x artifacts for my Maven plugin: > > - org.neo4j:neoj > - org.neo4j.app:neo4j-server > - org.neo4j.app:neo4j-server:static * Do you declare a direct dependency on static or a transitive one? If direct, then yes you are Sorry-out-of-Luck If transitive, then the <dependency> in the user's <plugin> will override the neo4j-server and you are sorted as the newer version will not pull in the static stuff > > > For a user it would be possible to override only the first two > dependencies with the Neo4j 3.x versions: the third artifact (*) does > not exist for Neo4j 3.x (the Neo guys merged the static content into > neo4j-server.jar, i.e. into the main artifact without classifier). In > this case I would need to exclude "org.neo4j.app:neo4j-server:static" > which is still there as a 2.x artifact and pulls in some other deps that > are conflicting with the 3.x stuff. Any idea? > > Cheers, > > Dirk > > ------ Originalnachricht ------ > Von: "Bindul Bhowmik" <bindulbhow...@gmail.com> > An: "Maven Developers List" <dev@maven.apache.org>; "Dirk Mahler" > <dirk.mah...@buschmais.com> > Gesendet: 12.04.2017 20:28:16 > Betreff: Re: Configurable Dependencies for Maven Plugins? > > >Dirk, > > > >On Wed, Apr 12, 2017 at 7:06 AM, Dirk Mahler > ><dirk.mah...@buschmais.com> wrote: > >> Hi all, > >> > >> is there a way to provide users of a plugin a way of easily switching > >> dependencies of it? > >> > >> Background: I'm developing a Maven plugin (jQAssistant) that comes > >>with a > >> dependency to Neo4j (graph database). Currently I'm using Neo4j 2.3.x > >>which > >> has been compiled against Java 7 but I would like to offer users of > >>the > >> Maven plugin an easy option to use the newer Neo4j 3.x releases which > >>offer > >> some new features but require Java 8. > >> > >> I know that it's possible to overwrite an existing dependency for a > >>plugin, > >> e.g. > >> > >> <plugin> > >> <groupId>com.buschmais.jqassistant</groupId> > >> <artifactId>jqassistant-maven-plugin</artifactId> > >> <version>1.3.0</version> > >> <dependencies> > >> <dependency> > >> <groupId>org.neo4j</groupId> > >> <artifactId>neo4j</artifactId> > >> <version>3.1.3</version> <!-- instead of the default 2.3.10 --> > >> </dependency> > >> </dependencies> > >> </plugin> > > > >As long as your code can handle the different versions of the > >dependency, I think this is absolutely doable. In fact the Maven > >Checkstyle Plugin uses the same approach to allow upgrading checkstyle > >versions without upgrading the plugin version [1]. > > > >> > >> The problem is that in my case the old version comes with another set > >>of > >> dependencies than the new one: > > > >I do not think this will be a problem. > > > >> > >> old: > >> > >> <dependencies> > >> <dependency> > >> <groupId>org.neo4j</groupId> > >> <artifactId>neo4j</artifactId> > >> <version>2.3.10</version> > >> </dependency> > >> <dependency> > >> <groupId>org.neo4j.app</groupId> > >> <artifactId>neo4j-server</artifactId> > >> <version>2.3.10</version> > >> </dependency> > >> <dependency> > >> <groupId>org.neo4j.app</groupId> > >> <artifactId>neo4j-server</artifactId> > >> <classifier>static-web</classifier> > >> <version>2.3.10</version> > >> </dependency> > >> </dependencies> > >> > >> new: > >> > >> <dependencies> > >> <dependency> > >> <groupId>org.neo4j</groupId> > >> <artifactId>neo4j</artifactId> > >> <version>3.1.3</version> > >> </dependency> > >> <dependency> > >> <groupId>org.neo4j.app</groupId> > >> <artifactId>neo4j-server</artifactId> > >> <version>3.1.3</version> > >> </dependency> > >> </dependencies> > >> > >> Is there a good way to deal with it such that a user of the > >> jqassistant-maven-plugin can easily switch between both variants? > >> > >> Cheers, > >> > >> Dirk > >> > >> Senior Consultant IT > >> buschmais GbR > > > > > >- Bindul > > > >[1] > > > http://maven.apache.org/plugins/maven-checkstyle-plugin/examples/upgrading-checkstyle.html > > > >> > >> ----------------------------------------------------------------- > >> Inhaber Torsten Busch, Frank Schwarz, Dirk Mahler, Tobias Israel > >> Adresse buschmais GbR, Leipziger Straße 93, 01127 Dresden > >> Telefon +49 (0) 351 3209 23-0 > >> Fax +49 (0) 351 3209 23-29 > >> Mobil +49 (0) 177 3137411 > >> E-Mail dirk.mah...@buschmais.com > >> Internet http://www.buschmais.de > >> ----------------------------------------------------------------- > >> > >> Diese E-Mail enthält vertrauliche undoder rechtlich geschützte > >> Informationen. Wenn Sie diese E-Mail irrtümlich erhalten haben, > >> bitten wir Sie diese E-Mail umgehend zu löschen. Das unerlaubte > >> Kopieren sowie die unbefugte Weitergabe dieser E-Mail ist nicht > >> gestattet. > >> > >> This e-mail may contain confidential or privileged information. If > >> you are not the intended recipient we kindly request you to delete > >> this e-mail immediately. Any unauthorized copying, disclosure or > >> distribution of the material in this e-mail is strictly forbidden. > >> > >> > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > >For additional commands, e-mail: dev-h...@maven.apache.org > > > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@maven.apache.org > For additional commands, e-mail: dev-h...@maven.apache.org > > -- Sent from my phone