Hello,

I am trying to make nmaven artifacts using dll binaries but I would like to
define the dependencies of this dll.
In the case of log4net I am currently trying to make I want to make
artifacts for each dotnet environments (dotnet 2.0, dotnet 1.1, mono ...)
and I think it should be handled using classifiers.

As for now I think we have to use profiles to define each environemnt
artifacts, by the way I don't know how to use these profiles to make
classifiers.

Here is my current pom with net-1.2 profile and its dependencies:

<?xml version="1.0" encoding="UTF-8"?>
> <project xmlns="http://maven.apache.org/POM/4.0.0"; xmlns:xsi="
> http://www.w3.org/2001/XMLSchema-instance";
>          xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
> http://maven.apache.org/maven-v4_0_0.xsd";>
>
>     <modelVersion>4.0.0</modelVersion>
>     <groupId>log4net</groupId>
>     <artifactId>log4net</artifactId>
>     <version>1.2.10.0-SNAPSHOT</version>
>     <name>Log for .Net</name>
>     <description>log4net is a tool to help the programmer output log
> statements to a variety of output targets.
>     </description>
>     <url>http://www.xml-rpc.net/</url>
>     <packaging>dotnet:library</packaging>
>
>
>     <licenses>
>         <license>
>             <name>The Apache2 License</name>
>             <url>
>                 http://logging.apache.org/log4net/license.html
>             </url>
>         </license>
>     </licenses>
>
>     <build>
>         <finalName>log4net</finalName>
>         <!-- To define the plugin version in your parent POM -->
>             <pluginManagement>
>               <plugins>
>                 <plugin>
>                   <groupId>org.apache.maven.plugins</groupId>
>                   <artifactId>maven-repository-plugin</artifactId>
>                   <version>2.1</version>
>                 </plugin>
>               </plugins>
>             </pluginManagement>
>             <!-- To use the plugin goals in your POM or parent POM -->
>             <plugins>
>               <plugin>
>                 <groupId>org.apache.maven.plugins</groupId>
>                 <artifactId>maven-repository-plugin</artifactId>
>                 <version>2.1</version>
>               </plugin>
>             </plugins>
>     </build>
>
>
>     <profiles>
>         <profile>
>             <id>net-2.0</id>
>
>             <dependencies>
>                 <dependency>
>                     <groupId>System.Data</groupId>
>                     <artifactId>System.Data</artifactId>
>                     <version>2.0.0.0</version>
>                     <type>dotnet:gac</type>
>                     <scope>system</scope>
>                     <classifier>b77a5c561934e089</classifier>
>
> <systemPath>${env.GAC_ROOT}/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll</systemPath>
>                 </dependency>
>                 <dependency>
>                     <groupId>System.Web</groupId>
>                     <artifactId>System.Web</artifactId>
>                     <version>2.0.0.0</version>
>                     <type>dotnet:gac</type>
>                     <scope>system</scope>
>                     <classifier>b03f5f7f11d50a3a</classifier>
>
> <systemPath>${env.GAC_ROOT}/System.Web/2.0.0.0__b03f5f7f11d50a3a/System.Web.dll</systemPath>
>                 </dependency>
>             </dependencies>
>         </profile>
>     </profiles>
>
> </project>
>

Another way to do it is to have a pom by environment and insert the
classifier name inside the versionId. I remember something about versionId
that must be w.x.y.z, will it be a problem?

I thought to use repository:bundle-pack for the installation in repositories
but I don't know if I have to use this or just a mvn deploy:deploy-file
or...

Any help welcome. I think it will help a lot to have more nmaven artifacts
to have such a thing clear (and documented somewhere).
Thanks,

Regards,
Cédric,

Reply via email to