You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Arne Styve <as...@offsimcentre.no> on 2007/06/05 10:07:19 UTC

Maven, DLLs and repositories...how ?

Hi,
 
I have a question related to using DLLs with Maven. We colaborate with a company that develops parts of our system. They deliver their component as a set of DLLs. I've used JNI to create a Java interface to these DLL, so that I can use Java to develop the software that will use the DLLs.
How can I set up a Maven2 project that takes these DLLs and deploy them correctly to our company repository, so that I in my project, where I am going to use the DLLs, can add dependencies to the DLLs the usual Maven2 way ? I.e. this project will not have any sourcefiles, only the 4 DLLs.
 
Regards 
Arne

Re: Maven, DLLs and repositories...how ?

Posted by Max Bowsher <ma...@ukf.net>.
Graham Leggett wrote:
> We eventually opted to wrap the JNI DLLs / .so files inside a jar, and
> publish the jar in the repository, including a classifier to show both the
> platform (windows / linux / solaris) and architecture (x86, amd64, etc).
> From that point on we only needed to worry about the name of the jar,
> which was consistent across platforms.

We tried this, but found that it didn't work well with uniqueVersioned
snapshots - only one platform's artifacts would be available in the
repository at any one time, because the metadata recording the timestamp
is not classifier-specific.

As a result, we ended up moving the platform/architecture information
into the artifactId instead.

(Does that make sense? It's a bit of a hack, but it seems to work
adequately.)

Max.



Re: Maven, DLLs and repositories...how ?

Posted by Jason van Zyl <ja...@maven.org>.
On 5 Jun 07, at 5:23 AM 5 Jun 07, Graham Leggett wrote:

> On Tue, June 5, 2007 10:07 am, Arne Styve wrote:
>
>> I have a question related to using DLLs with Maven. We colaborate  
>> with a
>> company that develops parts of our system. They deliver their  
>> component as
>> a set of DLLs. I've used JNI to create a Java interface to these  
>> DLL, so
>> that I can use Java to develop the software that will use the DLLs.
>> How can I set up a Maven2 project that takes these DLLs and deploy  
>> them
>> correctly to our company repository, so that I in my project,  
>> where I am
>> going to use the DLLs, can add dependencies to the DLLs the usual  
>> Maven2
>> way ? I.e. this project will not have any sourcefiles, only the 4  
>> DLLs.
>
> We faced the same problem.
>
> Originally we tried to publish the DLL artifact into the repository
> directly, but this caused problems for us, as our JNI native code  
> had to
> run on Windows, Linux and Solaris, and maintaining the proper naming
> conventions and suffixes was a pain.
>
> We eventually opted to wrap the JNI DLLs / .so files inside a jar, and
> publish the jar in the repository, including a classifier to show  
> both the
> platform (windows / linux / solaris) and architecture (x86, amd64,  
> etc).
> From that point on we only needed to worry about the name of the jar,
> which was consistent across platforms.
>

This is what the folks at SLAC did and ended with NAR files.

http://java.freehep.org/freehep-nar-plugin/intro.html

> When you have multiple DLLs, putting them in a jar reduces them  
> down from
> many artifacts to one artifact, which is easier to deal with.
>
> This is the pom we use, it should give some clues. The DLLs are  
> built by
> ant using the antrun plugin, and maven worries about the packaging and
> deployment:
>
> <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>
>
>   <parent>
>     <artifactId>alchemy-ii-native</artifactId>
>     <groupId>alchemy</groupId>
>     <version>4.0.30-SNAPSHOT</version>
>   </parent>
>
>   <artifactId>alchemy-cdo</artifactId>
>   <packaging>jar</packaging>
>   <name>Alchemy Native CDO</name>
>   <description>Placeholder for the CDO stuff from London</description>
>
>   <build>
>     <extensions>
>       <extension>
>         <groupId>org.apache.maven.wagon</groupId>
>         <artifactId>wagon-webdav</artifactId>
>         <version>1.0-beta-2</version>
>       </extension>
>     </extensions>
>     <sourceDirectory>src/main/java</sourceDirectory>
> <!--    <testSourceDirectory>src</testSourceDirectory>-->
>     <resources>
>       <resource>
>         <directory>target/build</directory>
>         <includes>
>           <include>*.dll</include>
>         </includes>
>       </resource>
>       <resource>
>         <directory>target/build</directory>
>         <includes>
>           <include>*.dylib</include>
>         </includes>
>       </resource>
>       <resource>
>         <directory>target/build</directory>
>         <includes>
>           <include>*.so</include>
>         </includes>
>       </resource>
>       <resource>
>         <directory>src/main/resources</directory>
>         <filtering>true</filtering>
>         <includes>
>           <include>alchemy-cdo-version.properties</include>
>         </includes>
>       </resource>
>     </resources>
>
>     <plugins>
>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>native-maven-plugin</artifactId>
>         <extensions>true</extensions>
>
>          <!-- Generate JNI header files based on a list of class  
> name on
> the classpath -->
>          <!-- The generated include directory is automatically  
> added to
> include path at compile phase -->
>          <!-- Ensure to have appropriate denpendency jar file(s) in  
> your
> pom -->
>
>         <executions>
>           <execution>
>             <id>javah</id>
>             <phase>generate-sources</phase>
>             <configuration>
>               <classNames>
>                 <className>alchemy.cdo.measure.CDOTranche</className>
>               </classNames>
>                <!--
>                 |   Note:
>                 |    1. Without classNames, javah mojo will search  
> for all
> JNI classes
>                 |       in your dependency list.
>                -->
>             </configuration>
>             <goals>
>               <goal>javah</goal>
>             </goals>
>           </execution>
>
>         </executions>
>       </plugin>
>
>       <!-- trigger the ant build -->
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-antrun-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>2antrun</id>
>             <phase>process-sources</phase><!-- needs to run BEFORE
> resources -->
>             <configuration>
>               <tasks>
>                 <ant target="compile-cc-${os-platform}" />
>               </tasks>
>             </configuration>
>             <goals>
>               <goal>run</goal>
>             </goals>
>           </execution>
>         </executions>
>         <dependencies>
>           <dependency>
>             <groupId>ant-contrib</groupId>
>             <artifactId>cpptasks</artifactId>
>             <version>1.0b3</version>
>           </dependency>
>         </dependencies>
>       </plugin>
>
>       <!-- jar plugin -->
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-jar-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>jar</id>
>             <phase>package</phase>
>             <goals>
>               <goal>jar</goal>
>             </goals>
>             <configuration>
>               <classifier>${os-platform}-${os-arch}</classifier>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>
>       <!-- manually define the artifacts ant produces for  
> deployment -->
>      <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>build-helper-maven-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>attach-artifacts</id>
>             <phase>package</phase>
>             <goals>
>               <goal>attach-artifact</goal>
>             </goals>
>             <configuration>
>                 <artifacts>
>                   <artifact>
>                     <file>${project.build.directory}/${artifactId}-$ 
> {version}-${os-platform}-${os-arch}.jar</file>
>                     <type>jar</type>
>                     <classifier>${os-platform}-${os-arch}</classifier>
>                   </artifact>
>                 </artifacts>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>
>       <!-- site plugin -->
>       <plugin>
>        <groupId>org.apache.maven.plugins</groupId>
>        <artifactId>maven-site-plugin</artifactId>
>        <configuration>
>          <siteDirectory>${basedir}/site/</siteDirectory>
>        </configuration>
>       </plugin>
>     </plugins>
>   </build>
>
>   <dependencies>
>
>     <!-- CDO Client jar -->
>     <dependency>
>       <groupId>alchemy</groupId>
>       <artifactId>alchemy-cdo-client</artifactId>
>       <version>${pom.version}</version>
>     </dependency>
>
>   </dependencies>
>
>   <reporting>
>     <plugins>
>       <plugin>
>         <artifactId>maven-javadoc-plugin</artifactId>
>       </plugin>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>jxr-maven-plugin</artifactId>
>       </plugin>
>       <plugin>
>         <artifactId>maven-surefire-plugin</artifactId>
>       </plugin>
>       <plugin>
>         <artifactId>maven-clover-plugin</artifactId>
>       </plugin>
>       <plugin>
>          <groupId>org.apache.maven.plugins</groupId>
>
>          <artifactId>maven-pmd-plugin</artifactId>
>          <configuration>
>             <targetjdk>1.5</targetjdk>
>             <rulesets>
>                <ruleset>/rulesets/basic.xml</ruleset>
>                <ruleset>/rulesets/controversial.xml</ruleset>
>             </rulesets>
>             <format>xml</format>
>             <linkXref>true</linkXref>
>             <sourceEncoding>utf-8</sourceEncoding>
>
>             <minimumTokens>100</minimumTokens>
>          </configuration>
>       </plugin>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>changes-maven-plugin</artifactId>
>       </plugin>
> <!--
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>changelog-maven-plugin</artifactId>
>       </plugin>
> -->
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>taglist-maven-plugin</artifactId>
>       </plugin>
>     </plugins>
>   </reporting>
>
> </project>
>
> Regards,
> Graham
> --
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder and PMC Chair, Apache Maven
jason at sonatype dot com
----------------------------------------------------------




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


Re: SV: Maven, DLLs and repositories...how ?

Posted by Mark Donszelmann <Ma...@slac.stanford.edu>.
Hi

have a look at

http://java.freehep.org/freehep-nar-plugin

Regards
Mark Donszelmann

On Jun 6, 2007, at 8:10 AM, Jason van Zyl wrote:

>
> On 6 Jun 07, at 2:50 AM 6 Jun 07, Arne Styve wrote:
>
>> Hi Jason,
>>
>> Thanks for your input. I'll give this a try. However, how do you  
>> then use the JAR containing all the DLLs and .so's ? As far as  
>> I've understood, you cannot access a DLL that is inside a JAR, and  
>> hence you have to extract the DLLs from the JAR in order to use  
>> the DLL. Is this correct ?
>>
>
> There is an artifact handler that unpacks them to be used from the  
> local repository. Mark has the full details as he's the one who  
> implemented the solution and is working great at SLAC.
>
>> Regards Arne
>>
>> ________________________________
>>
>>
>> On Tue, June 5, 2007 10:07 am, Arne Styve wrote:
>>
>>> I have a question related to using DLLs with Maven. We colaborate  
>>> with a
>>> company that develops parts of our system. They deliver their  
>>> component as
>>> a set of DLLs. I've used JNI to create a Java interface to these  
>>> DLL, so
>>> that I can use Java to develop the software that will use the DLLs.
>>> How can I set up a Maven2 project that takes these DLLs and  
>>> deploy them
>>> correctly to our company repository, so that I in my project,  
>>> where I am
>>> going to use the DLLs, can add dependencies to the DLLs the usual  
>>> Maven2
>>> way ? I.e. this project will not have any sourcefiles, only the 4  
>>> DLLs.
>>
>> We faced the same problem.
>>
>> Originally we tried to publish the DLL artifact into the repository
>> directly, but this caused problems for us, as our JNI native code  
>> had to
>> run on Windows, Linux and Solaris, and maintaining the proper naming
>> conventions and suffixes was a pain.
>>
>> We eventually opted to wrap the JNI DLLs / .so files inside a jar,  
>> and
>> publish the jar in the repository, including a classifier to show  
>> both the
>> platform (windows / linux / solaris) and architecture (x86, amd64,  
>> etc).
>> From that point on we only needed to worry about the name of the jar,
>> which was consistent across platforms.
>>
>> When you have multiple DLLs, putting them in a jar reduces them  
>> down from
>> many artifacts to one artifact, which is easier to deal with.
>>
>> This is the pom we use, it should give some clues. The DLLs are  
>> built by
>> ant using the antrun plugin, and maven worries about the packaging  
>> and
>> deployment:
>>
>> <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>
>>
>>   <parent>
>>     <artifactId>alchemy-ii-native</artifactId>
>>     <groupId>alchemy</groupId>
>>     <version>4.0.30-SNAPSHOT</version>
>>   </parent>
>>
>>   <artifactId>alchemy-cdo</artifactId>
>>   <packaging>jar</packaging>
>>   <name>Alchemy Native CDO</name>
>>   <description>Placeholder for the CDO stuff from London</ 
>> description>
>>
>>   <build>
>>     <extensions>
>>       <extension>
>>         <groupId>org.apache.maven.wagon</groupId>
>>         <artifactId>wagon-webdav</artifactId>
>>         <version>1.0-beta-2</version>
>>       </extension>
>>     </extensions>
>>     <sourceDirectory>src/main/java</sourceDirectory>
>> <!--    <testSourceDirectory>src</testSourceDirectory>-->
>>     <resources>
>>       <resource>
>>         <directory>target/build</directory>
>>         <includes>
>>           <include>*.dll</include>
>>         </includes>
>>       </resource>
>>       <resource>
>>         <directory>target/build</directory>
>>         <includes>
>>           <include>*.dylib</include>
>>         </includes>
>>       </resource>
>>       <resource>
>>         <directory>target/build</directory>
>>         <includes>
>>           <include>*.so</include>
>>         </includes>
>>       </resource>
>>       <resource>
>>         <directory>src/main/resources</directory>
>>         <filtering>true</filtering>
>>         <includes>
>>           <include>alchemy-cdo-version.properties</include>
>>         </includes>
>>       </resource>
>>     </resources>
>>
>>     <plugins>
>>
>>       <plugin>
>>         <groupId>org.codehaus.mojo</groupId>
>>         <artifactId>native-maven-plugin</artifactId>
>>         <extensions>true</extensions>
>>
>>          <!-- Generate JNI header files based on a list of class  
>> name on
>> the classpath -->
>>          <!-- The generated include directory is automatically  
>> added to
>> include path at compile phase -->
>>          <!-- Ensure to have appropriate denpendency jar file(s)  
>> in your
>> pom -->
>>
>>         <executions>
>>           <execution>
>>             <id>javah</id>
>>             <phase>generate-sources</phase>
>>             <configuration>
>>               <classNames>
>>                 <className>alchemy.cdo.measure.CDOTranche</className>
>>               </classNames>
>>                <!--
>>                 |   Note:
>>                 |    1. Without classNames, javah mojo will search  
>> for all
>> JNI classes
>>                 |       in your dependency list.
>>                -->
>>             </configuration>
>>             <goals>
>>               <goal>javah</goal>
>>             </goals>
>>           </execution>
>>
>>         </executions>
>>       </plugin>
>>
>>       <!-- trigger the ant build -->
>>       <plugin>
>>         <groupId>org.apache.maven.plugins</groupId>
>>         <artifactId>maven-antrun-plugin</artifactId>
>>         <executions>
>>           <execution>
>>             <id>2antrun</id>
>>             <phase>process-sources</phase><!-- needs to run BEFORE
>> resources -->
>>             <configuration>
>>               <tasks>
>>                 <ant target="compile-cc-${os-platform}" />
>>               </tasks>
>>             </configuration>
>>             <goals>
>>               <goal>run</goal>
>>             </goals>
>>           </execution>
>>         </executions>
>>         <dependencies>
>>           <dependency>
>>             <groupId>ant-contrib</groupId>
>>             <artifactId>cpptasks</artifactId>
>>             <version>1.0b3</version>
>>           </dependency>
>>         </dependencies>
>>       </plugin>
>>
>>       <!-- jar plugin -->
>>       <plugin>
>>         <groupId>org.apache.maven.plugins</groupId>
>>         <artifactId>maven-jar-plugin</artifactId>
>>         <executions>
>>           <execution>
>>             <id>jar</id>
>>             <phase>package</phase>
>>             <goals>
>>               <goal>jar</goal>
>>             </goals>
>>             <configuration>
>>               <classifier>${os-platform}-${os-arch}</classifier>
>>             </configuration>
>>           </execution>
>>         </executions>
>>       </plugin>
>>
>>       <!-- manually define the artifacts ant produces for  
>> deployment -->
>>      <plugin>
>>         <groupId>org.codehaus.mojo</groupId>
>>         <artifactId>build-helper-maven-plugin</artifactId>
>>         <executions>
>>           <execution>
>>             <id>attach-artifacts</id>
>>             <phase>package</phase>
>>             <goals>
>>               <goal>attach-artifact</goal>
>>             </goals>
>>             <configuration>
>>                 <artifacts>
>>                   <artifact>
>>                     <file>${project.build.directory}/${artifactId}- 
>> ${version}-${os-platform}-${os-arch}.jar</file>
>>                     <type>jar</type>
>>                     <classifier>${os-platform}-${os-arch}</ 
>> classifier>
>>                   </artifact>
>>                 </artifacts>
>>             </configuration>
>>           </execution>
>>         </executions>
>>       </plugin>
>>
>>       <!-- site plugin -->
>>       <plugin>
>>        <groupId>org.apache.maven.plugins</groupId>
>>        <artifactId>maven-site-plugin</artifactId>
>>        <configuration>
>>          <siteDirectory>${basedir}/site/</siteDirectory>
>>        </configuration>
>>       </plugin>
>>     </plugins>
>>   </build>
>>
>>   <dependencies>
>>
>>     <!-- CDO Client jar -->
>>     <dependency>
>>       <groupId>alchemy</groupId>
>>       <artifactId>alchemy-cdo-client</artifactId>
>>       <version>${pom.version}</version>
>>     </dependency>
>>
>>   </dependencies>
>>
>>   <reporting>
>>     <plugins>
>>       <plugin>
>>         <artifactId>maven-javadoc-plugin</artifactId>
>>       </plugin>
>>       <plugin>
>>         <groupId>org.codehaus.mojo</groupId>
>>         <artifactId>jxr-maven-plugin</artifactId>
>>       </plugin>
>>       <plugin>
>>         <artifactId>maven-surefire-plugin</artifactId>
>>       </plugin>
>>       <plugin>
>>         <artifactId>maven-clover-plugin</artifactId>
>>       </plugin>
>>       <plugin>
>>          <groupId>org.apache.maven.plugins</groupId>
>>
>>          <artifactId>maven-pmd-plugin</artifactId>
>>          <configuration>
>>             <targetjdk>1.5</targetjdk>
>>             <rulesets>
>>                <ruleset>/rulesets/basic.xml</ruleset>
>>                <ruleset>/rulesets/controversial.xml</ruleset>
>>             </rulesets>
>>             <format>xml</format>
>>             <linkXref>true</linkXref>
>>             <sourceEncoding>utf-8</sourceEncoding>
>>
>>             <minimumTokens>100</minimumTokens>
>>          </configuration>
>>       </plugin>
>>       <plugin>
>>         <groupId>org.codehaus.mojo</groupId>
>>         <artifactId>changes-maven-plugin</artifactId>
>>       </plugin>
>> <!--
>>       <plugin>
>>         <groupId>org.codehaus.mojo</groupId>
>>         <artifactId>changelog-maven-plugin</artifactId>
>>       </plugin>
>> -->
>>       <plugin>
>>         <groupId>org.codehaus.mojo</groupId>
>>         <artifactId>taglist-maven-plugin</artifactId>
>>       </plugin>
>>     </plugins>
>>   </reporting>
>>
>> </project>
>>
>> Regards,
>> Graham
>> --
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>> For additional commands, e-mail: users-help@maven.apache.org
>>
>>
>>
>
> Thanks,
>
> Jason
>
> ----------------------------------------------------------
> Jason van Zyl
> Founder and PMC Chair, Apache Maven
> jason at sonatype dot com
> ----------------------------------------------------------
>
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>


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


Re: SV: Maven, DLLs and repositories...how ?

Posted by Jason van Zyl <ja...@maven.org>.
On 6 Jun 07, at 2:50 AM 6 Jun 07, Arne Styve wrote:

> Hi Jason,
>
> Thanks for your input. I'll give this a try. However, how do you  
> then use the JAR containing all the DLLs and .so's ? As far as I've  
> understood, you cannot access a DLL that is inside a JAR, and hence  
> you have to extract the DLLs from the JAR in order to use the DLL.  
> Is this correct ?
>

There is an artifact handler that unpacks them to be used from the  
local repository. Mark has the full details as he's the one who  
implemented the solution and is working great at SLAC.

> Regards Arne
>
> ________________________________
>
>
> On Tue, June 5, 2007 10:07 am, Arne Styve wrote:
>
>> I have a question related to using DLLs with Maven. We colaborate  
>> with a
>> company that develops parts of our system. They deliver their  
>> component as
>> a set of DLLs. I've used JNI to create a Java interface to these  
>> DLL, so
>> that I can use Java to develop the software that will use the DLLs.
>> How can I set up a Maven2 project that takes these DLLs and deploy  
>> them
>> correctly to our company repository, so that I in my project,  
>> where I am
>> going to use the DLLs, can add dependencies to the DLLs the usual  
>> Maven2
>> way ? I.e. this project will not have any sourcefiles, only the 4  
>> DLLs.
>
> We faced the same problem.
>
> Originally we tried to publish the DLL artifact into the repository
> directly, but this caused problems for us, as our JNI native code  
> had to
> run on Windows, Linux and Solaris, and maintaining the proper naming
> conventions and suffixes was a pain.
>
> We eventually opted to wrap the JNI DLLs / .so files inside a jar, and
> publish the jar in the repository, including a classifier to show  
> both the
> platform (windows / linux / solaris) and architecture (x86, amd64,  
> etc).
> From that point on we only needed to worry about the name of the jar,
> which was consistent across platforms.
>
> When you have multiple DLLs, putting them in a jar reduces them  
> down from
> many artifacts to one artifact, which is easier to deal with.
>
> This is the pom we use, it should give some clues. The DLLs are  
> built by
> ant using the antrun plugin, and maven worries about the packaging and
> deployment:
>
> <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>
>
>   <parent>
>     <artifactId>alchemy-ii-native</artifactId>
>     <groupId>alchemy</groupId>
>     <version>4.0.30-SNAPSHOT</version>
>   </parent>
>
>   <artifactId>alchemy-cdo</artifactId>
>   <packaging>jar</packaging>
>   <name>Alchemy Native CDO</name>
>   <description>Placeholder for the CDO stuff from London</description>
>
>   <build>
>     <extensions>
>       <extension>
>         <groupId>org.apache.maven.wagon</groupId>
>         <artifactId>wagon-webdav</artifactId>
>         <version>1.0-beta-2</version>
>       </extension>
>     </extensions>
>     <sourceDirectory>src/main/java</sourceDirectory>
> <!--    <testSourceDirectory>src</testSourceDirectory>-->
>     <resources>
>       <resource>
>         <directory>target/build</directory>
>         <includes>
>           <include>*.dll</include>
>         </includes>
>       </resource>
>       <resource>
>         <directory>target/build</directory>
>         <includes>
>           <include>*.dylib</include>
>         </includes>
>       </resource>
>       <resource>
>         <directory>target/build</directory>
>         <includes>
>           <include>*.so</include>
>         </includes>
>       </resource>
>       <resource>
>         <directory>src/main/resources</directory>
>         <filtering>true</filtering>
>         <includes>
>           <include>alchemy-cdo-version.properties</include>
>         </includes>
>       </resource>
>     </resources>
>
>     <plugins>
>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>native-maven-plugin</artifactId>
>         <extensions>true</extensions>
>
>          <!-- Generate JNI header files based on a list of class  
> name on
> the classpath -->
>          <!-- The generated include directory is automatically  
> added to
> include path at compile phase -->
>          <!-- Ensure to have appropriate denpendency jar file(s) in  
> your
> pom -->
>
>         <executions>
>           <execution>
>             <id>javah</id>
>             <phase>generate-sources</phase>
>             <configuration>
>               <classNames>
>                 <className>alchemy.cdo.measure.CDOTranche</className>
>               </classNames>
>                <!--
>                 |   Note:
>                 |    1. Without classNames, javah mojo will search  
> for all
> JNI classes
>                 |       in your dependency list.
>                -->
>             </configuration>
>             <goals>
>               <goal>javah</goal>
>             </goals>
>           </execution>
>
>         </executions>
>       </plugin>
>
>       <!-- trigger the ant build -->
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-antrun-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>2antrun</id>
>             <phase>process-sources</phase><!-- needs to run BEFORE
> resources -->
>             <configuration>
>               <tasks>
>                 <ant target="compile-cc-${os-platform}" />
>               </tasks>
>             </configuration>
>             <goals>
>               <goal>run</goal>
>             </goals>
>           </execution>
>         </executions>
>         <dependencies>
>           <dependency>
>             <groupId>ant-contrib</groupId>
>             <artifactId>cpptasks</artifactId>
>             <version>1.0b3</version>
>           </dependency>
>         </dependencies>
>       </plugin>
>
>       <!-- jar plugin -->
>       <plugin>
>         <groupId>org.apache.maven.plugins</groupId>
>         <artifactId>maven-jar-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>jar</id>
>             <phase>package</phase>
>             <goals>
>               <goal>jar</goal>
>             </goals>
>             <configuration>
>               <classifier>${os-platform}-${os-arch}</classifier>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>
>       <!-- manually define the artifacts ant produces for  
> deployment -->
>      <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>build-helper-maven-plugin</artifactId>
>         <executions>
>           <execution>
>             <id>attach-artifacts</id>
>             <phase>package</phase>
>             <goals>
>               <goal>attach-artifact</goal>
>             </goals>
>             <configuration>
>                 <artifacts>
>                   <artifact>
>                     <file>${project.build.directory}/${artifactId}-$ 
> {version}-${os-platform}-${os-arch}.jar</file>
>                     <type>jar</type>
>                     <classifier>${os-platform}-${os-arch}</classifier>
>                   </artifact>
>                 </artifacts>
>             </configuration>
>           </execution>
>         </executions>
>       </plugin>
>
>       <!-- site plugin -->
>       <plugin>
>        <groupId>org.apache.maven.plugins</groupId>
>        <artifactId>maven-site-plugin</artifactId>
>        <configuration>
>          <siteDirectory>${basedir}/site/</siteDirectory>
>        </configuration>
>       </plugin>
>     </plugins>
>   </build>
>
>   <dependencies>
>
>     <!-- CDO Client jar -->
>     <dependency>
>       <groupId>alchemy</groupId>
>       <artifactId>alchemy-cdo-client</artifactId>
>       <version>${pom.version}</version>
>     </dependency>
>
>   </dependencies>
>
>   <reporting>
>     <plugins>
>       <plugin>
>         <artifactId>maven-javadoc-plugin</artifactId>
>       </plugin>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>jxr-maven-plugin</artifactId>
>       </plugin>
>       <plugin>
>         <artifactId>maven-surefire-plugin</artifactId>
>       </plugin>
>       <plugin>
>         <artifactId>maven-clover-plugin</artifactId>
>       </plugin>
>       <plugin>
>          <groupId>org.apache.maven.plugins</groupId>
>
>          <artifactId>maven-pmd-plugin</artifactId>
>          <configuration>
>             <targetjdk>1.5</targetjdk>
>             <rulesets>
>                <ruleset>/rulesets/basic.xml</ruleset>
>                <ruleset>/rulesets/controversial.xml</ruleset>
>             </rulesets>
>             <format>xml</format>
>             <linkXref>true</linkXref>
>             <sourceEncoding>utf-8</sourceEncoding>
>
>             <minimumTokens>100</minimumTokens>
>          </configuration>
>       </plugin>
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>changes-maven-plugin</artifactId>
>       </plugin>
> <!--
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>changelog-maven-plugin</artifactId>
>       </plugin>
> -->
>       <plugin>
>         <groupId>org.codehaus.mojo</groupId>
>         <artifactId>taglist-maven-plugin</artifactId>
>       </plugin>
>     </plugins>
>   </reporting>
>
> </project>
>
> Regards,
> Graham
> --
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>
>

Thanks,

Jason

----------------------------------------------------------
Jason van Zyl
Founder and PMC Chair, Apache Maven
jason at sonatype dot com
----------------------------------------------------------




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


RE: SV: Maven, DLLs and repositories...how ?

Posted by Arne Styve <as...@offsimcentre.no>.
 

> 
> On Wed, June 6, 2007 8:50 am, Arne Styve wrote:
> 
> > Thanks for your input. I'll give this a try. However, how 
> do you then 
> > use the JAR containing all the DLLs and .so's ? As far as I've 
> > understood, you cannot access a DLL that is inside a JAR, and hence 
> > you have to extract the DLLs from the JAR in order to use 
> the DLL. Is this correct ?
> 
> In our case, we create a final assembly that either copies or 
> unpacks the various artifacts and places them where they need 
> to be in the assembly.
> 
> We have Matlab produced artifacts (which aren't unpacked) and 
> DLLs-wrapped-in-jars (which are unpacked) that go into the 
> assembly, which we then give to the production guys for deployment.
> 
> A second approach which we also use in one or two places is 
> to use the dependency plugin to copy and or unpack jars, and 
> place them in various places where necessary.

Great, thanks Graham !

Regards
Arne

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


Re: SV: Maven, DLLs and repositories...how ?

Posted by Graham Leggett <mi...@sharp.fm>.
On Wed, June 6, 2007 8:50 am, Arne Styve wrote:

> Thanks for your input. I'll give this a try. However, how do you then use
> the JAR containing all the DLLs and .so's ? As far as I've understood, you
> cannot access a DLL that is inside a JAR, and hence you have to extract
> the DLLs from the JAR in order to use the DLL. Is this correct ?

In our case, we create a final assembly that either copies or unpacks the
various artifacts and places them where they need to be in the assembly.

We have Matlab produced artifacts (which aren't unpacked) and
DLLs-wrapped-in-jars (which are unpacked) that go into the assembly, which
we then give to the production guys for deployment.

A second approach which we also use in one or two places is to use the
dependency plugin to copy and or unpack jars, and place them in various
places where necessary.

Regards,
Graham
--



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


Re: Maven, DLLs and repositories...how ?

Posted by Steinar Bang <sb...@dod.no>.
>>>>> "Arne Styve" <as...@offsimcentre.no>:

> Thanks for your input. I'll give this a try. However, how do you
> then use the JAR containing all the DLLs and .so's ? As far as I've
> understood, you cannot access a DLL that is inside a JAR, and hence
> you have to extract the DLLs from the JAR in order to use the
> DLL. Is this correct ?

What I've done is to use dependency:unpack (see the maven-dependency-plugin 
http://maven.apache.org/plugins/maven-dependency-plugin/ ) to unpack
jar files containing DLLs into a directory in the PATH of the VM that
will use them from JNI.

Shared libs for linux and Solaris takes a bit more work.
dependency:unpack can unpack tar.gz files, but doesn't preserve the
symlinks between different versions of the shared libs.
See
	http://jira.codehaus.org/browse/MDEP-68

So for these platforms I've used dependency:copy to download and place
the tar.gz files in a directory in the LD_LIBRARY_PATH of the VM that
will use them from JNI, and then use exec:exec from exec-maven-plugin
http://mojo.codehaus.org/exec-maven-plugin/plugin-info.html ) to
unpack the tar.gz files using native tar.

A bit clumsy, but it works.



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


SV: Maven, DLLs and repositories...how ?

Posted by Arne Styve <as...@offsimcentre.no>.
Hi Jason,
 
Thanks for your input. I'll give this a try. However, how do you then use the JAR containing all the DLLs and .so's ? As far as I've understood, you cannot access a DLL that is inside a JAR, and hence you have to extract the DLLs from the JAR in order to use the DLL. Is this correct ?
 
Regards Arne

________________________________


On Tue, June 5, 2007 10:07 am, Arne Styve wrote:

> I have a question related to using DLLs with Maven. We colaborate with a
> company that develops parts of our system. They deliver their component as
> a set of DLLs. I've used JNI to create a Java interface to these DLL, so
> that I can use Java to develop the software that will use the DLLs.
> How can I set up a Maven2 project that takes these DLLs and deploy them
> correctly to our company repository, so that I in my project, where I am
> going to use the DLLs, can add dependencies to the DLLs the usual Maven2
> way ? I.e. this project will not have any sourcefiles, only the 4 DLLs.

We faced the same problem.

Originally we tried to publish the DLL artifact into the repository
directly, but this caused problems for us, as our JNI native code had to
run on Windows, Linux and Solaris, and maintaining the proper naming
conventions and suffixes was a pain.

We eventually opted to wrap the JNI DLLs / .so files inside a jar, and
publish the jar in the repository, including a classifier to show both the
platform (windows / linux / solaris) and architecture (x86, amd64, etc).
>From that point on we only needed to worry about the name of the jar,
which was consistent across platforms.

When you have multiple DLLs, putting them in a jar reduces them down from
many artifacts to one artifact, which is easier to deal with.

This is the pom we use, it should give some clues. The DLLs are built by
ant using the antrun plugin, and maven worries about the packaging and
deployment:

<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>

  <parent>
    <artifactId>alchemy-ii-native</artifactId>
    <groupId>alchemy</groupId>
    <version>4.0.30-SNAPSHOT</version>
  </parent>

  <artifactId>alchemy-cdo</artifactId>
  <packaging>jar</packaging>
  <name>Alchemy Native CDO</name>
  <description>Placeholder for the CDO stuff from London</description>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-webdav</artifactId>
        <version>1.0-beta-2</version>
      </extension>
    </extensions>
    <sourceDirectory>src/main/java</sourceDirectory>
<!--    <testSourceDirectory>src</testSourceDirectory>-->
    <resources>
      <resource>
        <directory>target/build</directory>
        <includes>
          <include>*.dll</include>
        </includes>
      </resource>
      <resource>
        <directory>target/build</directory>
        <includes>
          <include>*.dylib</include>
        </includes>
      </resource>
      <resource>
        <directory>target/build</directory>
        <includes>
          <include>*.so</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>alchemy-cdo-version.properties</include>
        </includes>
      </resource>
    </resources>

    <plugins>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>native-maven-plugin</artifactId>
        <extensions>true</extensions>

         <!-- Generate JNI header files based on a list of class name on
the classpath -->
         <!-- The generated include directory is automatically added to
include path at compile phase -->
         <!-- Ensure to have appropriate denpendency jar file(s) in your
pom -->

        <executions>
          <execution>
            <id>javah</id>
            <phase>generate-sources</phase>
            <configuration>
              <classNames>
                <className>alchemy.cdo.measure.CDOTranche</className>
              </classNames>
               <!--
                |   Note:
                |    1. Without classNames, javah mojo will search for all
JNI classes
                |       in your dependency list.
               -->
            </configuration>
            <goals>
              <goal>javah</goal>
            </goals>
          </execution>

        </executions>
      </plugin>

      <!-- trigger the ant build -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>2antrun</id>
            <phase>process-sources</phase><!-- needs to run BEFORE
resources -->
            <configuration>
              <tasks>
                <ant target="compile-cc-${os-platform}" />
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>ant-contrib</groupId>
            <artifactId>cpptasks</artifactId>
            <version>1.0b3</version>
          </dependency>
        </dependencies>
      </plugin>

      <!-- jar plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>jar</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <classifier>${os-platform}-${os-arch}</classifier>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- manually define the artifacts ant produces for deployment -->
     <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
                <artifacts>
                  <artifact>
                    <file>${project.build.directory}/${artifactId}-${version}-${os-platform}-${os-arch}.jar</file>
                    <type>jar</type>
                    <classifier>${os-platform}-${os-arch}</classifier>
                  </artifact>
                </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- site plugin -->
      <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-site-plugin</artifactId>
       <configuration>
         <siteDirectory>${basedir}/site/</siteDirectory>
       </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>

    <!-- CDO Client jar -->
    <dependency>
      <groupId>alchemy</groupId>
      <artifactId>alchemy-cdo-client</artifactId>
      <version>${pom.version}</version>
    </dependency>

  </dependencies>

  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jxr-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-clover-plugin</artifactId>
      </plugin>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>

         <artifactId>maven-pmd-plugin</artifactId>
         <configuration>
            <targetjdk>1.5</targetjdk>
            <rulesets>
               <ruleset>/rulesets/basic.xml</ruleset>
               <ruleset>/rulesets/controversial.xml</ruleset>
            </rulesets>
            <format>xml</format>
            <linkXref>true</linkXref>
            <sourceEncoding>utf-8</sourceEncoding>

            <minimumTokens>100</minimumTokens>
         </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>changes-maven-plugin</artifactId>
      </plugin>
<!--
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>changelog-maven-plugin</artifactId>
      </plugin>
-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>

</project>

Regards,
Graham
--



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




Re: Maven, DLLs and repositories...how ?

Posted by Graham Leggett <mi...@sharp.fm>.
On Tue, June 5, 2007 10:07 am, Arne Styve wrote:

> I have a question related to using DLLs with Maven. We colaborate with a
> company that develops parts of our system. They deliver their component as
> a set of DLLs. I've used JNI to create a Java interface to these DLL, so
> that I can use Java to develop the software that will use the DLLs.
> How can I set up a Maven2 project that takes these DLLs and deploy them
> correctly to our company repository, so that I in my project, where I am
> going to use the DLLs, can add dependencies to the DLLs the usual Maven2
> way ? I.e. this project will not have any sourcefiles, only the 4 DLLs.

We faced the same problem.

Originally we tried to publish the DLL artifact into the repository
directly, but this caused problems for us, as our JNI native code had to
run on Windows, Linux and Solaris, and maintaining the proper naming
conventions and suffixes was a pain.

We eventually opted to wrap the JNI DLLs / .so files inside a jar, and
publish the jar in the repository, including a classifier to show both the
platform (windows / linux / solaris) and architecture (x86, amd64, etc).
>From that point on we only needed to worry about the name of the jar,
which was consistent across platforms.

When you have multiple DLLs, putting them in a jar reduces them down from
many artifacts to one artifact, which is easier to deal with.

This is the pom we use, it should give some clues. The DLLs are built by
ant using the antrun plugin, and maven worries about the packaging and
deployment:

<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>

  <parent>
    <artifactId>alchemy-ii-native</artifactId>
    <groupId>alchemy</groupId>
    <version>4.0.30-SNAPSHOT</version>
  </parent>

  <artifactId>alchemy-cdo</artifactId>
  <packaging>jar</packaging>
  <name>Alchemy Native CDO</name>
  <description>Placeholder for the CDO stuff from London</description>

  <build>
    <extensions>
      <extension>
        <groupId>org.apache.maven.wagon</groupId>
        <artifactId>wagon-webdav</artifactId>
        <version>1.0-beta-2</version>
      </extension>
    </extensions>
    <sourceDirectory>src/main/java</sourceDirectory>
<!--    <testSourceDirectory>src</testSourceDirectory>-->
    <resources>
      <resource>
        <directory>target/build</directory>
        <includes>
          <include>*.dll</include>
        </includes>
      </resource>
      <resource>
        <directory>target/build</directory>
        <includes>
          <include>*.dylib</include>
        </includes>
      </resource>
      <resource>
        <directory>target/build</directory>
        <includes>
          <include>*.so</include>
        </includes>
      </resource>
      <resource>
        <directory>src/main/resources</directory>
        <filtering>true</filtering>
        <includes>
          <include>alchemy-cdo-version.properties</include>
        </includes>
      </resource>
    </resources>

    <plugins>

      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>native-maven-plugin</artifactId>
        <extensions>true</extensions>

         <!-- Generate JNI header files based on a list of class name on
the classpath -->
         <!-- The generated include directory is automatically added to
include path at compile phase -->
         <!-- Ensure to have appropriate denpendency jar file(s) in your
pom -->

        <executions>
          <execution>
            <id>javah</id>
            <phase>generate-sources</phase>
            <configuration>
              <classNames>
                <className>alchemy.cdo.measure.CDOTranche</className>
              </classNames>
               <!--
                |   Note:
                |    1. Without classNames, javah mojo will search for all
JNI classes
                |       in your dependency list.
               -->
            </configuration>
            <goals>
              <goal>javah</goal>
            </goals>
          </execution>

        </executions>
      </plugin>

      <!-- trigger the ant build -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-antrun-plugin</artifactId>
        <executions>
          <execution>
            <id>2antrun</id>
            <phase>process-sources</phase><!-- needs to run BEFORE
resources -->
            <configuration>
              <tasks>
                <ant target="compile-cc-${os-platform}" />
              </tasks>
            </configuration>
            <goals>
              <goal>run</goal>
            </goals>
          </execution>
        </executions>
        <dependencies>
          <dependency>
            <groupId>ant-contrib</groupId>
            <artifactId>cpptasks</artifactId>
            <version>1.0b3</version>
          </dependency>
        </dependencies>
      </plugin>

      <!-- jar plugin -->
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <executions>
          <execution>
            <id>jar</id>
            <phase>package</phase>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <classifier>${os-platform}-${os-arch}</classifier>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- manually define the artifacts ant produces for deployment -->
     <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>build-helper-maven-plugin</artifactId>
        <executions>
          <execution>
            <id>attach-artifacts</id>
            <phase>package</phase>
            <goals>
              <goal>attach-artifact</goal>
            </goals>
            <configuration>
                <artifacts>
                  <artifact>
                    <file>${project.build.directory}/${artifactId}-${version}-${os-platform}-${os-arch}.jar</file>
                    <type>jar</type>
                    <classifier>${os-platform}-${os-arch}</classifier>
                  </artifact>
                </artifacts>
            </configuration>
          </execution>
        </executions>
      </plugin>

      <!-- site plugin -->
      <plugin>
       <groupId>org.apache.maven.plugins</groupId>
       <artifactId>maven-site-plugin</artifactId>
       <configuration>
         <siteDirectory>${basedir}/site/</siteDirectory>
       </configuration>
      </plugin>
    </plugins>
  </build>

  <dependencies>

    <!-- CDO Client jar -->
    <dependency>
      <groupId>alchemy</groupId>
      <artifactId>alchemy-cdo-client</artifactId>
      <version>${pom.version}</version>
    </dependency>

  </dependencies>

  <reporting>
    <plugins>
      <plugin>
        <artifactId>maven-javadoc-plugin</artifactId>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>jxr-maven-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
      </plugin>
      <plugin>
        <artifactId>maven-clover-plugin</artifactId>
      </plugin>
      <plugin>
         <groupId>org.apache.maven.plugins</groupId>

         <artifactId>maven-pmd-plugin</artifactId>
         <configuration>
            <targetjdk>1.5</targetjdk>
            <rulesets>
               <ruleset>/rulesets/basic.xml</ruleset>
               <ruleset>/rulesets/controversial.xml</ruleset>
            </rulesets>
            <format>xml</format>
            <linkXref>true</linkXref>
            <sourceEncoding>utf-8</sourceEncoding>

            <minimumTokens>100</minimumTokens>
         </configuration>
      </plugin>
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>changes-maven-plugin</artifactId>
      </plugin>
<!--
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>changelog-maven-plugin</artifactId>
      </plugin>
-->
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>taglist-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </reporting>

</project>

Regards,
Graham
--



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