Hello everybody, I think I will upload to maven central repository the log4net artifacts I have created. They are only based on binaries and do not define any dependencies because I haven't yet succeed to make work classifiers and dependencies in the same time.
Concerning the sources classifier, do we have the jar file format or there is a format for dotnet tools? Concerning the pdb files, it sounds that there is no much support so I will wait until I understand how to make them and how to use them in nmaven/dotnet tools. Concerning the help of log4net team to support this artifact, I think it is better to wait for the full support of all previous questions. I hope there will be no problem on the central repository team to let me upload these artifacts. Brett, I think it is the same case for you and nunit, so could I had you in copy if I have troubles? The following files will be uploaded: > log4net-1.2.10.0-cli-1.0.dll > log4net-1.2.10.0-mono-1.0.dll > log4net-1.2.10.0-mono-2.0.dll > log4net-1.2.10.0-net-1.0.dll > log4net-1.2.10.0-net-1.1.dll > log4net-1.2.10.0-net-2.0.dll > log4net-1.2.10.0-netcf-1.0.dll > log4net-1.2.10.0.pom > log4net-1.2.10.0-sscli-1.0.dll > They have been generated using this script: > #!/bin/sh > > LOG4NETVERSION=1.2.10.0 > export LOG4NETVERSION > > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/net/2.0/release/log4net.dll > -Dclassifier=net-2.0 > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/net/1.0/release/log4net.dll > -Dclassifier=net-1.0 > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/net/1.1/release/log4net.dll > -Dclassifier=net-1.1 > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/mono/2.0/release/log4net.dll > -Dclassifier=mono-2.0 > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/mono/1.0/release/log4net.dll > -Dclassifier=mono-1.0 > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/netcf/1.0/release/log4net.dll > -Dclassifier=netcf-1.0 > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/cli/1.0/release/log4net.dll > -Dclassifier=cli-1.0 > mvn install:install-file -DpomFile=pom.xml > -Dfile=lib/log4net-$LOG4NETVERSION/bin/sscli/1.0/release/log4net.dll > -Dclassifier=sscli-1.0 > > cd ~/.m2/repository/log4net/log4net/$LOG4NETVERSION/ > echo "Bundling local repository files" > jar -cf log4net-bundle.jar *.dll *.pom > And my pom is: > <?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> > <!-- the last version number will be used for nmaven artifact packaging > --> > <version>1.2.10.0</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://logging.apache.org/log4net/</url> > <packaging>dotnet:library</packaging> > <developers> > <developer> > <id>mimil</id> > <email>[EMAIL PROTECTED]</email> > <roles> > <role>artifact creator</role> > </roles> > </developer> > </developers> > <licenses> > <license> > <name>The Apache2 License</name> > <url> > http://logging.apache.org/log4net/license.html > </url> > </license> > </licenses> > <build> > <finalName>log4net</finalName> > <plugins> > <!-- dotnet compiler plugin is needed to be aware of > dot:library packaging --> > <plugin> > <groupId>org.apache.maven.dotnet.plugins</groupId> > <artifactId>maven-dotnet-compiler-plugin</artifactId> > <!--version>0.16-incubating-SNAPSHOT</version--> > <extensions>true</extensions> > </plugin> > </plugins> > </build> > </project> > Any comments are welcome before I upload them. Regards, Cedric, On Fri, Nov 7, 2008 at 5:03 AM, James Carpenter <[EMAIL PROTECTED]>wrote: > You might want to consider adding the pdb and source archives with > appropriate classifiers along with the assemblies/dlls. Even if you don't > index the pdb files (see below) it will be easy to go back and do so later. > > > ======================================= > If you want to go way out of the way you can even add source server > information to the pdb files. > > Lets say you create a maven plugin with the following goal/arguments: > > prompt>mvn source-server:resolve -DgroupId="com.acme.mortar" > -DartifactId="tools" -Dversion="1.3.2" -DrelativeFile="tooling/trowel.cs" > -DoutputPath="C:\mysrc\" > > The result of this goal would be to resolve the > com.acme.mortar:tools:sources:1.3.2:jar artifact and extract the > tooling/trowel.cs file and copy it to > C:\mysrc\com\acme\mortar\tools\1.3.2\tooling\trowel.cs > > You then process the pdb files to inject the magic srcsrv stream (see an > earlier post) which will tell the MS debugging tools for windows how to form > the above command for any of the files used to build the assembly/pdb. > > The result of this dance will be the ability for the Visual Studio debugger > to magically step down into the source code of any of the assemblies you > have placed into the maven repository. > > I wrote a post on this mailing list a few weeks ago which gives a lot more > of the details. > > > On Nov 6, 2008, at 3:52 PM, Mimil Mimil wrote: > > Hi, >> >> As you advised I am making artifacts from binaries because I do not belong >> to the projects I am doing artifacts - I just want to add more nmaven >> artifacts for the community. >> >> Dependencies will be differents are they are I think related to the >> environments so I think the only way to manage this is classifier. >> >> How the lib differs between environments? I don't have any knowledge of >> .net >> but the clearest exemple is for compact framework. As it targets mobiles, >> pda, ... it is certainly a lot different from the conventional framework. >> As yes did different DLLs for the different frameworks I think it is >> because >> they need it, that's all I can say =) >> >> An easy way would be for now to not set dependencies (if we have problem >> on >> this point) but is the classifier stuff supported out of the box to deploy >> manual artifacts? I mean is the namming convention >> <artifactId>-<version>-<everything else after version is considered as a >> classifier> ? >> >> Do we have to develop a little plugin in order to specify the classifier >> of >> artifacts? I say that because the only things I saw through the web as or >> based on the maven-jar-plugin or on war plugin which I don't remember the >> name. >> Maybe http://mojo.codehaus.org/build-helper-maven-plugin/usage.html can >> be >> used with attach-artifact? >> >> Regards, >> Cedric, >> >> On Thu, Nov 6, 2008 at 7:19 PM, Brett Porter <[EMAIL PROTECTED]> wrote: >> >> Yes, you should use classifiers, so the POM you have looks fine (and >>> there >>> need be just one). If you are building with NMaven yourself, we need to >>> make >>> sure the compiler plugin supports adding classifiers. >>> >>> Profiles shouldn't be needed. If the dependencies differ between them, it >>> might be a problem. >>> >>> Is it required to have different versions for each framework? How do they >>> differ exactly? >>> >>> Cheers, >>> Brett >>> >>> >>> On 05/11/2008, at 10:36 AM, Mimil Mimil wrote: >>> >>> 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, >>>> >>>> >>> -- >>> Brett Porter >>> [EMAIL PROTECTED] >>> http://blogs.exist.com/bporter/ >>> >>> >>> > Sincerely, > James Carpenter > cell: 832-677-7247 > email: [EMAIL PROTECTED] > > > >
