Hi Lennart,
that sounds feasible, will give it a try and come back with the result.
Thanks so far to all of you!
Dirk
Am Mittwoch 12. April 2017 schrieb Lennart Jörelid:
> Hello Dirk,
>
> There are always options for doing this, although they may not be
> considered elegant.
>
> To solve your problem in a practical way I would recommend defining two
> profiles within your pom (say "neo4jV2" and "neo4jV3").
> One of the properties should be included ("Conditional profiles") using the
> value (or existence/non-existence) of a command-line property (typically
> something like -Dneo4jVersion=2).
>
> The neo4jv2 profile includes the three neo4j2 dependencies, and the neo4jv3
> profile includes the two neo4j3 dependencies.
> Include the neo4jV3 profile unless the property "neo4jVersion" is set on
> the command line.
>
> Done.
>
>
> 2017-04-12 21:50 GMT+02:00 Dirk Mahler <[email protected]>:
>
> > Hi Stephen,
> >
> > I need to declare the dependency to static directly, so I'm on the
> > Sorry-Out-Of-Luck path...
> >
> > But your suggestion makes me thinking of providing an artifact myself
> > (just pom packaging) in two different versions that pulls in the different
> > dependencies and which can be overridden by the user. This should be
> > possible then, right?
> >
> > In that case I have to think about how to organize my own builds because I
> > assume that within one reactor I won't be able to build two modules with
> > same groupId and artifactId but different versions.
> >
> > Cheers,
> >
> > Dirk
> >
> > PS: Thanks for the 3.5.0 release, works like a charm for me!
> >
> > Am Mittwoch 12. April 2017 schrieb Stephen Connolly:
> > > On Wed 12 Apr 2017 at 20:21, Dirk Mahler <[email protected]>
> > 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" <[email protected]>
> > > > An: "Maven Developers List" <[email protected]>; "Dirk Mahler"
> > > > <[email protected]>
> > > > 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
> > > > ><[email protected]> 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 [email protected]
> > > > >> 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: [email protected]
> > > > >For additional commands, e-mail: [email protected]
> > > > >
> > > >
> > > >
> > > > ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [email protected]
> > > > For additional commands, e-mail: [email protected]
> > > >
> > > > --
> > > Sent from my phone
> > >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [email protected]
> > For additional commands, e-mail: [email protected]
> >
> >
>
>
> --
>
> --
> +==============================+
> | Bästa hälsningar,
> | [sw. "Best regards"]
> |
> | Lennart Jörelid
> | EAI Architect & Integrator
> |
> | jGuru Europe AB
> | Mölnlycke - Kista
> |
> | Email: [email protected]
> | URL: www.jguru.se
> | Phone
> | (skype): jgurueurope
> | (intl): +46 708 507 603
> | (domestic): 0708 - 507 603
> +==============================+
>