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

Reply via email to