> 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>
mimil@...</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 <
jcarpenter621@...>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 <
brett@...> 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
>>>>
brett@...
>>>>
http://blogs.exist.com/bporter/>>>>
>>>>
>>>>
>> Sincerely,
>> James Carpenter
>> cell: 832-677-7247
>> email:
jcarpenter621@...
>>
>>
>>
>>
>