Hi Gili,

cowwoc wrote:

> 
> 
> Jörg Schaible-3 wrote:
>> 
>> cowwoc wrote:
>> 
>>> 
>>> Hi Zac,
>>> 
>>> I added:
>>> 
>>> <properties>
>>> <swt.classifier>win32-x86</swt.classifier>
>>> </properties>
>> 
>> You can define this property in your settings.xmll in the appropriate
>> profile.
>> 
>> - Jörg
>> 
> 
> Jörg,
> 
> Isn't one of the main selling points of Maven the ability to include
> transitive dependencies with little effort? Now you're telling me that not
> only do I have to explicitly deal with each transitive dependency, I also
> have to tell all my developers to modify their settings.xml file. One
> person at a time.
> 
> ... Is this as good as it gets? ... Really?! Surely there is a better way?

The point is that it is platform dependent - the platform your developer is 
using. A profile should not be used to define dependencies - at least if 
those should be transitively inherited. It simply does not work in the way 
most people assume. It is not inherited anyway, therefore you have to define 
it already twice (in A and B). This does not scale also.

What you might try is to define a swt pom (or package type pom) for all 
platforms like:

...
  <groupId>com.eclipse</groupId>
  <artifactId>swt-generic</artifactId>
  <version>3.6.1</version>
  <packaging>pom</packaging>

  <profiles>
    <profile>
      <id>win32</id>
      <dependencies>
        <groupId>com.eclipse</groupId>
        <artifactId>swt</artifactId>
        <version>3.6.1</version>
        <classifier>win32-x86</classifier>
      </dependencies>
    </profile>
    ...
  </profiles>

and refer that everywhere you need it as provided:

..
    <dependency>
      <groupId>com.eclipse</groupId>
      <artifactId>swt-generic</artifactId>
      <version>3.6.1</version>
      <type>pom</type>
      <scope>provided</scope>
    </dependency>
..

Your developers may actually set their default in the settings.xml:

  <activeProfiles>
    <activeProfile>win32</activeProfile>
    ...
  </activeProfiles>
  <profiles>
    <profile>
      <id>win32</id>
    </profile>
    ...
  </profiles>

The provided scope prevents that a special one is taken and you have to 
select the appropriate one(s) when packaging your app e.g. with the assembly 
plugin.

- Jörg


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org

Reply via email to