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,
