You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@maven.apache.org by Jan Wedel <Ja...@ettex.de> on 2009/08/10 13:58:05 UTC

Maven for Non-Java Projects

Hi there!

I already searched google for some help but it seems that it's not 
really common to use Maven for non-Java projects.

However, we plan to be platform and language-independent by supporting 
e.g. embedded Java, C, C++ and Python. The question is if it is feasible 
to use Maven for all projects?
I found the maven-native-plugin and maven-nar-plugin but I'm not really 
sure if it supports everything that's needed. We are looking for a 
server-based central repository maintaining different projects and 
libraries in various languages.

Can anybody who uses or used any of these or other plug-ins to support 
non-Java projects please respond with some comments, hints, suggestions, 
pro and cons etc. that might be helpful?

Thanks a lot!

Jan

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


Re: AW: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jörg Schaible <jo...@gmx.de>.
Hi Mark,

Donszelmann Mark wrote at Dienstag, 18. August 2009 13:53:

[snip]

>> However, I
>> cannot remember currently what that was and JIRA for the plugin
>> seems no
>> longer available.
> 
> it is under:
> 
> http://bugs.freehep.org/browse/NARPLUGIN

Thanks, pointer at
http://java.freehep.org/freehep-nar-plugin/issue-tracking.html links to
nowhere ;-)

- Jörg


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


Re: AW: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Donszelmann Mark <ma...@gmail.com>.
Hi

On Aug 18, 2009, at 10:29 AM, Jörg Schaible wrote:

> Jan Wedel wrote at Dienstag, 18. August 2009 09:40:
>
>> So, you just have to include the DUMMY part, but the resulting file  
>> name
>> does not include it?
>
> Actually it does, but it's the name of the library type: jni, shared  
> or
> static. So your repo will contain in the end:
>
> com/acme/demo/1.0/demo-dll-1.0.pom
> com/acme/demo/1.0/demo-dll-1.0-x86-Windows-msvc-shared.pom
>
> I cannot remember exactly what was the problem using the real name  
> of the
> part, but the nar:unpack simply needs this 4th part. IIRC according  
> the
> docs you should only specify the AOL part as classifier, but it  
> fails then.
>
>> Anyhow, as you have some experience in studying the code, what  
>> would you
>> say how difficult is it to include a new compiler that is not  
>> currently
>> supported by the nar? I read that NAR is using the ant cpptasks for
>> calling the native compilers. Is it just adding a new xml entry
>> somewhere or do I have to modify the plugin itself?
>
> Well, when I looked into the code it was some older release of the  
> plugin
> (2.0-alpha-7). In the later versions the compiler support has been
> completely refactored, so I cannot say much anymore. We're actually  
> using a
> private version 2.0-beta-10 with the patch of NARPLUGIN-171.  
> However, I
> cannot remember currently what that was and JIRA for the plugin  
> seems no
> longer available.

it is under:

http://bugs.freehep.org/browse/NARPLUGIN

Greetings
Mark


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


Re: AW: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jörg Schaible <jo...@gmx.de>.
Jan Wedel wrote at Dienstag, 18. August 2009 09:40:

> So, you just have to include the DUMMY part, but the resulting file name
> does not include it?

Actually it does, but it's the name of the library type: jni, shared or
static. So your repo will contain in the end:

com/acme/demo/1.0/demo-dll-1.0.pom
com/acme/demo/1.0/demo-dll-1.0-x86-Windows-msvc-shared.pom

I cannot remember exactly what was the problem using the real name of the
part, but the nar:unpack simply needs this 4th part. IIRC according the
docs you should only specify the AOL part as classifier, but it fails then.

> Anyhow, as you have some experience in studying the code, what would you
> say how difficult is it to include a new compiler that is not currently
> supported by the nar? I read that NAR is using the ant cpptasks for
> calling the native compilers. Is it just adding a new xml entry
> somewhere or do I have to modify the plugin itself?

Well, when I looked into the code it was some older release of the plugin
(2.0-alpha-7). In the later versions the compiler support has been
completely refactored, so I cannot say much anymore. We're actually using a
private version 2.0-beta-10 with the patch of NARPLUGIN-171. However, I
cannot remember currently what that was and JIRA for the plugin seems no
longer available.

- Jörg


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


Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Donszelmann Mark <ma...@gmail.com>.
Hi

On Aug 18, 2009, at 10:34 AM, Jörg Schaible wrote:

> Hi Mark,
>
> Donszelmann Mark wrote at Dienstag, 18. August 2009 09:44:
>
>> Hi
>>
>> I am the original author of the freehep-nar-plugin. It was made at
>> SLAC, Stanford Linear Accelerator Center,
>> when I worked there. In my current job, which terminates on september
>> 15, I hade no time to support this
>> and the other Native code related plugins.
>>
>> I am planning to pick things up again middle of september. I would be
>> interested in your lists of things that
>> fail to work with NAR, though I can think of a few myself. Any  
>> patches
>> you have created can be applied if
>> they work fine for NAR.
>>
>> I plan to build some good test cases, and some better examples so  
>> that
>> things run out of the box.
>
> this is really good news. Despite all the hassle, this plugin is  
> still the
> most complete solution for native projects. Most urgent issue is
> nevertheless to give it a new home that supports more infrastructure  
> e.g.
> in Codehaus' mojo. We users need a proper mailing list, but should
> not "abuse" the Maven core mailing list for this. Additionally JIRA  
> seems
> meanwhile down at the old location.

after mid september this is the plan, to move it somewhere with more  
infrastructure.

Regards
Mark

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


Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jörg Schaible <jo...@gmx.de>.
Hi Mark,

Donszelmann Mark wrote at Dienstag, 18. August 2009 09:44:

> Hi
> 
> I am the original author of the freehep-nar-plugin. It was made at
> SLAC, Stanford Linear Accelerator Center,
> when I worked there. In my current job, which terminates on september
> 15, I hade no time to support this
> and the other Native code related plugins.
> 
> I am planning to pick things up again middle of september. I would be
> interested in your lists of things that
> fail to work with NAR, though I can think of a few myself. Any patches
> you have created can be applied if
> they work fine for NAR.
> 
> I plan to build some good test cases, and some better examples so that
> things run out of the box.

this is really good news. Despite all the hassle, this plugin is still the
most complete solution for native projects. Most urgent issue is
nevertheless to give it a new home that supports more infrastructure e.g.
in Codehaus' mojo. We users need a proper mailing list, but should
not "abuse" the Maven core mailing list for this. Additionally JIRA seems
meanwhile down at the old location.

- Jörg


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


Re: AW: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Donszelmann Mark <ma...@gmail.com>.
Hi Jan,

all answers below of the top of my head and without looking into the  
code...
so no guarantees:

On Aug 18, 2009, at 10:08 AM, Jan Wedel wrote:

> Hi Mark!
>
> It's good to hear something from the original "source" of the plug- 
> in. I
> am currently evaluating whether we are using maven for C projects or
> not. I tried your plug-in by using the helloworldexe project and
> immediately got a "build failure" ([INFO] NAR: Please specify  
> <Includes>
> as part of <Cpp>, <C> or <Fortran> for x86.Windows.gcc.cpp.).
>
> I know I changed the POM to gcc but it should also compile well.

I am afraid changing compilers is not very well tested. It is  
something that one
should be able to do, as long as the compiler is in the list.

>
> No matter if you can help me with this issue or not, I can tell you  
> some
> requirements for my company of which I am not sure if NAR already
> supports it or not and which you might implement if the latter is the
> case.

sure.

>
> We want to build C project with embedded compilers such as gcc or IAR.
> The output could be a intel-hex file, e.g. or other microcontroller
> specific formats. We need to specify different compile settings for
> release, debug, test and factory-test e.g. That means using cpptest  
> for
> test and specifying precompiler defines by using the pom  
> configuration,
> if possible (e.g. USE_UART, USE_DISPLAY etc.). As part of the  
> lifecycle,
> it would be nice if the "deployment" could mean to upload the binary  
> to
> a microcontroller (which would be just a parametrizable call to an
> executable).
>

cross compilation is not standard possible, but should be an option in  
the future.
Having different settings, release, debug has crossed my mind but we  
never
really got that far. It should be a requirement.
Deploying is done by the standard deploy plugin. One should be able to  
replace that
one by something that calls an executable. I am not sure one can just  
replace it,
some maven specialist may know. In nar there is currently not such a  
provision, but
maybe there should be.

> Maybe, you could give some comments or advises if its already possible
> or if it can be achieved by just changing configuration file etc.

Regards
Mark

>
> Thanks,
>
> Jan
>
>
> -----Ursprüngliche Nachricht-----
> Von: Donszelmann Mark [mailto:mark.donszelmann@gmail.com]
> Gesendet: Dienstag, 18. August 2009 09:44
> An: Maven Users List
> Betreff: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java
> Projects
>
> Hi
>
> I am the original author of the freehep-nar-plugin. It was made at
> SLAC, Stanford Linear Accelerator Center,
> when I worked there. In my current job, which terminates on september
> 15, I hade no time to support this
> and the other Native code related plugins.
>
> I am planning to pick things up again middle of september. I would be
> interested in your lists of things that
> fail to work with NAR, though I can think of a few myself. Any patches
> you have created can be applied if
> they work fine for NAR.
>
> I plan to build some good test cases, and some better examples so that
> things run out of the box.
>
> Let me know
>
> Regards
> Mark Donszelmann
>
>
> ---------------------------------------------------------------------
> 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
>


AW: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jan Wedel <Ja...@ettex.de>.
Hi Mark!

It's good to hear something from the original "source" of the plug-in. I 
am currently evaluating whether we are using maven for C projects or 
not. I tried your plug-in by using the helloworldexe project and 
immediately got a "build failure" ([INFO] NAR: Please specify <Includes> 
as part of <Cpp>, <C> or <Fortran> for x86.Windows.gcc.cpp.).

I know I changed the POM to gcc but it should also compile well.

No matter if you can help me with this issue or not, I can tell you some 
requirements for my company of which I am not sure if NAR already 
supports it or not and which you might implement if the latter is the 
case.

We want to build C project with embedded compilers such as gcc or IAR. 
The output could be a intel-hex file, e.g. or other microcontroller 
specific formats. We need to specify different compile settings for 
release, debug, test and factory-test e.g. That means using cpptest for 
test and specifying precompiler defines by using the pom configuration, 
if possible (e.g. USE_UART, USE_DISPLAY etc.). As part of the lifecycle, 
it would be nice if the "deployment" could mean to upload the binary to 
a microcontroller (which would be just a parametrizable call to an 
executable).

Maybe, you could give some comments or advises if its already possible 
or if it can be achieved by just changing configuration file etc.

Thanks,

Jan


-----Ursprüngliche Nachricht-----
Von: Donszelmann Mark [mailto:mark.donszelmann@gmail.com] 
Gesendet: Dienstag, 18. August 2009 09:44
An: Maven Users List
Betreff: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java 
Projects

Hi

I am the original author of the freehep-nar-plugin. It was made at  
SLAC, Stanford Linear Accelerator Center,
when I worked there. In my current job, which terminates on september  
15, I hade no time to support this
and the other Native code related plugins.

I am planning to pick things up again middle of september. I would be  
interested in your lists of things that
fail to work with NAR, though I can think of a few myself. Any patches  
you have created can be applied if
they work fine for NAR.

I plan to build some good test cases, and some better examples so that  
things run out of the box.

Let me know

Regards
Mark Donszelmann


---------------------------------------------------------------------
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 : RE : AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by HARDION Vincent <vi...@synchrotron-soleil.fr>.
Hi, 

Here is the patch :

# This patch file was generated by NetBeans IDE
# This patch can be applied using context Tools: Apply Diff Patch action
on respective folder.
# It uses platform neutral UTF-8 encoding.
# Above lines and this line are ignored by the patching process.
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractCompileMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractCompileMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractCompileMojo.java 1.4
@@ -3,13 +3,17 @@
 
 import java.io.File;
 import java.util.Collections;
+import java.util.HashSet;
+import java.util.Iterator;
 import java.util.List;
 
+import java.util.Set;
+import org.apache.maven.plugin.MojoFailureException;
 import org.apache.tools.ant.Project;
 
 /**
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: AbstractCompileMojo.java,v 1.1 2009/04/03 07:11:37
hardion Exp $
+ * @version $Id: AbstractCompileMojo.java,v 1.4 2009/07/08 14:04:08
hardion Exp $
  */
 public abstract class AbstractCompileMojo extends
AbstractDependencyMojo {
 
@@ -109,6 +113,13 @@
      */
     private Java java;
    
+    /**
+     * Specific configuration for AOL, type of library
+     *
+     * @parameter expression=""
+     */
+    private Set/*<? extends AbstractCompileMojo>*/
specificConfigurations = new HashSet();
+
     private NarInfo narInfo;
 
     private List/*<String>*/ dependencyLibOrder;
@@ -173,6 +184,11 @@
         return libraries;
     }
    
+    protected Set getSpecificConfigurations() {
+        if (specificConfigurations == null) specificConfigurations =
Collections.EMPTY_SET;
+        return specificConfigurations;
+    }
+
     protected List getTests() {
         if (tests == null) tests = Collections.EMPTY_LIST;
         return tests;
@@ -205,4 +221,32 @@
     	}
     	return narInfo;
     }
+
+    public void parseSpecificConfigurations() throws
MojoFailureException{
+        for (Iterator it = specificConfigurations.iterator();
it.hasNext();) {
+            SpecificConfiguration configuration =
(SpecificConfiguration)it.next();
+
+            // Check activation condition
+            // All conditions must be true to activate
specificConfiguration (AND)
+            Activation activation = configuration.getActivation();
+            if(activation.isActive(this)){
+//                this.getLog().info("Active Specific Configuration :
"+configuration);
+                this.enhancement(configuration);
+            }else{
+//                this.getLog().debug("Specific Configuration unactive
:"+configuration);
 }
+        }
+    }
+
+    public void enhancement(final AbstractCompileMojo other) {
+
+        if (!this.equals(other) && other != null) {
+        
+                super.enhancement(other);
+                this.getCpp().enhancement(other.cpp);
+                this.getC().enhancement(other.c);
+                this.getFortran().enhancement(other.fortran);
+        }
+    }
+
+}
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractDependencyMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractDependencyMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractDependencyMojo.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractNarMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractNarMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AbstractNarMojo.java 1.3
@@ -10,7 +10,7 @@
 
 /**
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: AbstractNarMojo.java,v 1.1 2009/04/03 07:11:37 hardion
Exp $
+ * @version $Id: AbstractNarMojo.java,v 1.3 2009/05/06 16:42:11 hardion
Exp $
  */
 public abstract class AbstractNarMojo extends AbstractMojo implements
NarConstants {
     
@@ -126,4 +126,10 @@
     protected MavenProject getMavenProject() {
         return mavenProject;
     }
+
+    public void enhancement(final AbstractNarMojo other) {
+        if (!this.equals(other) && other != null) {
+            this.getLinker().enhancement(other.linker);
 }
+    }
+}
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AOL.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AOL.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AOL.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AttachedNarArtifact.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AttachedNarArtifact.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/AttachedNarArtifact.java 1.2
@@ -11,25 +11,28 @@
  * NarArtifact with its own type, classifier and artifactHandler.
  *
  * @author Mark Donszelmann
- * @version $Id: AttachedNarArtifact.java,v 1.1 2009/04/03 07:11:37
hardion Exp $
+ * @version $Id: AttachedNarArtifact.java,v 1.1 2009/04/03 07:11:37
hardion Exp
+ *          $
  */
 public class AttachedNarArtifact extends DefaultArtifact {
 
-    public AttachedNarArtifact(String groupId, String artifactId,
String version, String scope, 
-                       String type, String classifier, boolean
optional) throws InvalidVersionSpecificationException {
-        super(groupId, artifactId,
VersionRange.createFromVersionSpec(version), scope, 
-              type, classifier, null, optional);
-        setArtifactHandler(new Handler(classifier));
+	public AttachedNarArtifact(String groupId, String artifactId,
+			String version, String scope, String type,
String classifier,
+			boolean optional) throws
InvalidVersionSpecificationException {
+		super(groupId, artifactId,
VersionRange.createFromVersionSpec(version),
+				scope, type, classifier, null,
optional);
+		this.setArtifactHandler(new Handler(classifier));
     }
 
     public AttachedNarArtifact(Artifact parent, String type, String
classifier) {
-        super(parent.getGroupId(), parent.getArtifactId(),
parent.getVersionRange(), parent.getScope(), 
-              type, classifier, null, parent.isOptional());
-        setArtifactHandler(new Handler(classifier));
+		super(parent.getGroupId(), parent.getArtifactId(),
parent
+				.getVersionRange(), parent.getScope(),
type, classifier, null,
+				parent.isOptional());
+		this.setArtifactHandler(new Handler(classifier));
     }
      
     private class Handler implements ArtifactHandler {
-        private String classifier;
+		private final String classifier;
         
         Handler(String classifier) {
             this.classifier = classifier;
@@ -60,7 +63,7 @@
         }
 
         public boolean isAddedToClasspath() {
-            return false;
+			return true;
         }
     }
 }
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/C.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/C.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/C.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Compiler.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Compiler.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Compiler.java 1.3
@@ -4,6 +4,7 @@
 import java.io.File;
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
@@ -26,7 +27,7 @@
  * Abstract Compiler class
  * 
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: Compiler.java,v 1.1 2009/04/03 07:11:37 hardion Exp $
+ * @version $Id: Compiler.java,v 1.3 2009/05/06 16:42:11 hardion Exp $
  */
 public abstract class Compiler {
 
@@ -71,6 +72,10 @@
 	 */
 	private boolean debug = false;
 
+    public boolean isDebug() {
+        return debug;
+    }
+
 	/**
 	 * Enables generation of exception handling code.
 	 * 
@@ -493,4 +498,91 @@
 			}
 		}
 	}
+
+    public boolean equals(Object obj) {
+        if (obj == null) {
+            return false;
 }
+        if (getClass() != obj.getClass()) {
+            return false;
+        }
+        final Compiler other = (Compiler) obj;
+        if (this.sourceDirectory != other.sourceDirectory &&
(this.sourceDirectory == null ||
!this.sourceDirectory.equals(other.sourceDirectory))) {
+            return false;
+        }
+        if (this.includes != other.includes && (this.includes == null
|| !this.includes.equals(other.includes))) {
+            return false;
+        }
+        if (this.excludes != other.excludes && (this.excludes == null
|| !this.excludes.equals(other.excludes))) {
+            return false;
+        }
+        if ((this.optimize == null) ? (other.optimize != null) :
!this.optimize.equals(other.optimize)) {
+            return false;
+        }
+        if (this.defines != other.defines && (this.defines == null ||
!this.defines.equals(other.defines))) {
+            return false;
+        }
+        if ((this.defineSet == null) ? (other.defineSet != null) :
!this.defineSet.equals(other.defineSet)) {
+            return false;
+        }
+        if (this.undefines != other.undefines && (this.undefines ==
null || !this.undefines.equals(other.undefines))) {
+            return false;
+        }
+        if ((this.undefineSet == null) ? (other.undefineSet != null) :
!this.undefineSet.equals(other.undefineSet)) {
+            return false;
+        }
+        if (this.includePaths != other.includePaths &&
(this.includePaths == null ||
!this.includePaths.equals(other.includePaths))) {
+            return false;
+        }
+        if (this.systemIncludePaths != other.systemIncludePaths &&
(this.systemIncludePaths == null ||
!this.systemIncludePaths.equals(other.systemIncludePaths))) {
+            return false;
+        }
+        if (this.options != other.options && (this.options == null ||
!this.options.equals(other.options))) {
+            return false;
+        }
+        if ((this.optionSet == null) ? (other.optionSet != null) :
!this.optionSet.equals(other.optionSet)) {
+            return false;
+        }
+        return true;
+    }
+
+    public int hashCode() {
+        int hash = 7;
+        return hash;
+    }
+   
+    public void enhancement(final Compiler other) {
+
+        if (!this.equals(other) && (other != null)) {
+
+            this.includes =
NarUtil.enhanceCollection(getName()+".includes",this.includes,
other.includes);
+
+            this.excludes =
NarUtil.enhanceCollection(getName()+".excludes",this.excludes,
other.excludes);
+            this.optimize =
NarUtil.enhanceDefaultObject(getName()+".optimize",this.optimize,
other.optimize, "none");
+            this.defines =
NarUtil.enhanceCollection(getName()+".defines",this.defines,
other.defines);
+            this.defineSet =
NarUtil.enhanceDefaultObject(getName()+".defineSet",this.defineSet,
other.defineSet, "");
+            this.undefines =
NarUtil.enhanceCollection(getName()+".undefines",this.undefines,
other.undefines);
+            this.undefineSet =
NarUtil.enhanceDefaultObject(getName()+".undefineSet",this.undefineSet,
other.undefineSet, "");
+            this.includePaths =
NarUtil.enhanceCollection(getName()+".includePaths",this.includePaths,
other.includePaths);
+            this.systemIncludePaths =
NarUtil.enhanceCollection(getName()+".systemIncludePaths",this.systemInc
ludePaths, other.systemIncludePaths);
+            this.options =
NarUtil.enhanceCollection(getName()+".options",this.options,
other.options);
+            this.optionSet =
NarUtil.enhanceDefaultObject(getName()+".optionSet",this.optionSet,
other.optionSet, "");
+
+            this.debug =
NarUtil.enhanceDefaultObject(getName()+".debug", this.debug,
other.debug,Boolean.FALSE);
+
+            this.exceptions =
NarUtil.enhanceDefaultObject(getName()+".exceptions", exceptions,
other.exceptions,Boolean.TRUE);
+
+            this.rtti=  NarUtil.enhanceDefaultObject(getName()+".rtti",
this.rtti, (Boolean)other.rtti,Boolean.TRUE);
+
+            this.multiThreaded =
NarUtil.enhanceDefaultObject(getName()+".multiThreaded",
this.multiThreaded, (Boolean)other.multiThreaded,Boolean.FALSE);
+
+            this.clearDefaultDefines =
NarUtil.enhanceDefaultObject(getName()+".clearDefaultDefines",
this.clearDefaultDefines,
(Boolean)other.clearDefaultDefines,Boolean.FALSE);
+
+            this.clearDefaultUndefines =
NarUtil.enhanceDefaultObject(getName()+".clearDefaultUndefines",
this.clearDefaultUndefines,
(Boolean)other.clearDefaultUndefines,Boolean.FALSE);
+
+            this.clearDefaultOptions =
NarUtil.enhanceDefaultObject(getName()+".clearDefaultOptions",
this.clearDefaultOptions,
(Boolean)other.clearDefaultOptions,Boolean.FALSE);
+
+        }
+    }
+
+}
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Cpp.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Cpp.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Cpp.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Executable.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Executable.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Executable.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Fortran.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Fortran.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Fortran.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Java.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Java.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Java.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Javah.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Javah.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Javah.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Lib.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Lib.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Lib.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Library.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Library.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Library.java 1.2
@@ -9,7 +9,7 @@
  * Sets up a library to create
  * 
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: Library.java,v 1.1 2009/04/03 07:11:37 hardion Exp $
+ * @version $Id: Library.java,v 1.2 2009/05/05 07:27:07 hardion Exp $
  */
 public class Library implements Executable {
 
@@ -114,4 +114,9 @@
 	public File getNarSystemDirectory() {
 		return narSystemDirectory;
 	}	
+
+
+
+
+
 }
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Linker.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Linker.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Linker.java 1.3
@@ -27,7 +27,7 @@
  * Linker tag
  * 
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: Linker.java,v 1.1 2009/04/03 07:11:37 hardion Exp $
+ * @version $Id: Linker.java,v 1.3 2009/05/06 16:42:11 hardion Exp $
  */
 public class Linker {
 
@@ -345,4 +345,26 @@
             }
         }
     }
+
+    public void enhancement(final Linker other) {
+        
+        if (!this.equals(other) && (other != null)) {
+
+            this.options =
NarUtil.enhanceCollection("linker.options",this.options, other.options);
+            this.optionSet =
NarUtil.enhanceDefaultObject("linker.optionSet",this.optionSet,
other.optionSet,"");
+            this.libs =
NarUtil.enhanceCollection("linker.libs",this.libs, other.libs);
+            this.libSet =
NarUtil.enhanceDefaultObject("linker.libSet",this.libSet,
other.libSet,"");
+            this.sysLibs =
NarUtil.enhanceCollection("linker.sysLibs",this.sysLibs, other.sysLibs);
+            this.sysLibSet =
NarUtil.enhanceDefaultObject("linker.sysLibSet",this.sysLibSet,
other.sysLibSet,"");
+            this.narDependencyLibOrder =
NarUtil.enhanceDefaultObject("linker.narDependencyLibOrder",this.narDepe
ndencyLibOrder, other.narDependencyLibOrder,"");
+
+            this.incremental =
NarUtil.enhanceDefaultObject("linker.incremental",incremental,
other.incremental,Boolean.FALSE);
+
+            this.map = NarUtil.enhanceDefaultObject("linker.map",map,
other.map,Boolean.FALSE);
+
+            this.clearDefaultOptions =
NarUtil.enhanceDefaultObject("linker.clearDefaultOptions",clearDefaultOp
tions, other.clearDefaultOptions,Boolean.FALSE);
+
 }
+    }
+
+}
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArchiver.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArchiver.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArchiver.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArtifact.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArtifact.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArtifact.java 1.2
@@ -3,18 +3,20 @@
 
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.DefaultArtifact;
+import org.apache.maven.artifact.versioning.VersionRange;
 
 /**
  * 
  * @author duns
- * @version $Id: NarArtifact.java,v 1.1 2009/04/03 07:11:37 hardion Exp
$
+ * @version $Id: NarArtifact.java,v 1.2 2009/05/14 15:06:40 hardion Exp
$
  */
 public class NarArtifact extends DefaultArtifact {
 
     private NarInfo narInfo;
 
     public NarArtifact(Artifact dependency, NarInfo narInfo) {
-        super(dependency.getGroupId(), dependency.getArtifactId(),
dependency.getVersionRange(), 
+        //PATCH It's not this plugin which should resolve version
+        super(dependency.getGroupId(), dependency.getArtifactId(),
VersionRange.createFromVersion(dependency.getVersion()),
               dependency.getScope(), dependency.getType(),
dependency.getClassifier(), 
               dependency.getArtifactHandler(),
dependency.isOptional());
         this.narInfo = narInfo;
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArtifactHandler.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArtifactHandler.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarArtifactHandler.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarAssemblyMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarAssemblyMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarAssemblyMojo.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarCompileMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarCompileMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarCompileMojo.java 1.4
@@ -31,7 +31,7 @@
  * @phase compile
  * @requiresDependencyResolution compile
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: NarCompileMojo.java,v 1.1 2009/04/03 07:11:37 hardion
Exp $
+ * @version $Id: NarCompileMojo.java,v 1.4 2009/07/16 12:38:10 hardion
Exp $
  */
 public class NarCompileMojo extends AbstractCompileMojo {
 
@@ -42,6 +42,9 @@
 		// make sure destination is there
 		getTargetDirectory().mkdirs();
 
+        // Parse Specific Configuration
+        this.parseSpecificConfigurations();
+        
 		// check for source files
 		int noOfSources = 0;
 		noOfSources += getSourcesFor(getCpp()).size();
@@ -57,6 +60,9 @@
 			// FIXME, should the include paths be defined at
a higher level ?
 			getCpp().copyIncludeFiles(getMavenProject(),
 					new File(getTargetDirectory(),
"include"));
+            // VH: For C too
+			getC().copyIncludeFiles(getMavenProject(),
+					new File(getTargetDirectory(),
"include"));
 		} catch (IOException e) {
 			throw new MojoExecutionException(
 					"NAR: could not copy include
files", e);
@@ -107,7 +113,7 @@
 		File outFile;
 		if (type.equals(Library.EXECUTABLE)) {
 			// executable has no version number
-			outFile = new File(outDir,
getMavenProject().getArtifactId());
+			outFile = new File(outDir, getOutput(null));
 		} else {
 			outFile = new File(outDir, getOutput(getAOL()));
 		}
@@ -169,8 +175,14 @@
 				if (include.exists()) {
 
task.createIncludePath().setPath(include.getPath());
 				}
+                //Looking for platform dependant include file
+                include = new File(include,getAOL().toString());
+				getLog().debug("Looking for for specific
aol directory: " + include);
+				if (include.exists()) {
+
task.createIncludePath().setPath(include.getPath());
 			}
 		}
+		}
 
 		// add linker
 		LinkerDef linkerDefinition = getLinker().getLinker(this,
antProject,
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarConstants.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarConstants.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarConstants.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarDownloadMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarDownloadMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarDownloadMojo.java 1.6
@@ -3,20 +3,25 @@
 
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
+import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
 
 /**
- * Downloads any dependent NAR files. This includes the noarch and aol
type NAR files.
+ * Downloads any dependent NAR files. This includes the noarch and aol
type NAR
+ * files.
  *
  * @goal nar-download
  * @phase generate-sources
  * @requiresProject
  * @requiresDependencyResolution
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: NarDownloadMojo.java,v 1.1 2009/04/03 07:11:37 hardion
Exp $
+ * @version $Id: NarDownloadMojo.java,v 1.6 2009/05/19 09:45:36 hardion
Exp $
  */
 public class NarDownloadMojo extends AbstractDependencyMojo {
 
@@ -48,24 +53,34 @@
 	private List classifiers;
 
 	public void execute() throws MojoExecutionException,
MojoFailureException {
-		getLog().info("Using AOL: "+getAOL());
+		this.getLog().info("Using AOL: " + this.getAOL());
 		
-		if (shouldSkip()) {
-
getLog().info("*********************************************************
**************");
-    		getLog().info("NAR Plugin SKIPPED, no NAR Libraries will
be produced.");
-
getLog().info("*********************************************************
**************");
+		if (this.shouldSkip()) {
+			this
+					.getLog()
+					.info(
+
"***********************************************************************
");
+			this.getLog().info(
+					"NAR Plugin SKIPPED, no NAR
Libraries will be produced.");
+			this
+					.getLog()
+					.info(
+
"***********************************************************************
");
     		
     		return;
 		}
 		
-		List narArtifacts =
getNarManager().getNarDependencies("compile");
+		List narArtifacts =
this.getNarManager().getNarDependencies("compile");
+
 		if (classifiers == null) {
-
getNarManager().downloadAttachedNars(narArtifacts,
remoteArtifactRepositories,
-					artifactResolver, null);
+			// TODO Take account classifier from artifact
like else part
+
this.getNarManager().downloadAttachedNars(narArtifacts,
+					remoteArtifactRepositories,
artifactResolver, null);
 		} else {
 			for (Iterator j = classifiers.iterator();
j.hasNext();) {
-
getNarManager().downloadAttachedNars(narArtifacts,
remoteArtifactRepositories,
-						artifactResolver,
(String) j.next());
+
this.getNarManager().downloadAttachedNars(narArtifacts,
+
remoteArtifactRepositories, artifactResolver,
+						(String) j.next());
 			}
 		}
 	}
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarInfo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarInfo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarInfo.java 1.4
@@ -15,7 +15,7 @@
 /**
  * 
  * @author Mark Donszelmann
- * @version $Id: NarInfo.java,v 1.1 2009/04/03 07:11:37 hardion Exp $
+ * @version $Id: NarInfo.java,v 1.4 2009/07/22 08:45:18 hardion Exp $
  */
 public class NarInfo {
 
@@ -34,15 +34,16 @@
 		// Fill with general properties.nar file
 		File propertiesDir = new
File("src/main/resources/META-INF/nar/"
 				+ groupId + "/" + artifactId);
-		if (!propertiesDir.exists()) {
-			propertiesDir.mkdirs();
-		}
+		if (propertiesDir.exists()) {
+
 		File propertiesFile = new File(propertiesDir,
NarInfo.NAR_PROPERTIES);
+
 		try {
 			info.load(new FileInputStream(propertiesFile));
 		} catch (IOException ioe) {
 			// ignored
 		}
+		}
 
 	}
 
@@ -88,10 +89,19 @@
 	 * @return
 	 */
 	public String getBinding(AOL aol, String defaultBinding) {
-		return getProperty(aol, "libs.binding", defaultBinding);
+        String result = getProperty(aol, "libs.binding",
defaultBinding);
+
+        // FIXME SOLEIL Mantis:13184
+        if(result!=null && result.equals("executable")){
+            result="bin";
 	}
+		return result;
+	}
 
 	public void setBinding(AOL aol, String value) {
+		if(value.equals("executable")){
+            value="bin";
+        }
 		setProperty(aol, "libs.binding", value);
 	}
 
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarIntegrationTestMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarIntegrationTestMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarIntegrationTestMojo.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarJavahMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarJavahMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarJavahMojo.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarLogger.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarLogger.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarLogger.java 1.2
@@ -10,7 +10,7 @@
  * Logger to connect the Ant logging to the Maven logging.
  *
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: NarLogger.java,v 1.1 2009/04/03 07:11:37 hardion Exp $
+ * @version $Id: NarLogger.java,v 1.2 2009/07/22 14:15:57 hardion Exp $
  */
 public class NarLogger implements BuildListener {
     
@@ -54,7 +54,10 @@
                 log.warn(msg);
                 break;    
             case Project.MSG_INFO:
-            	if ((msg.indexOf("files were compiled") >= 0) ||
(msg.indexOf("Linking...") >= 0)) {
+            	if ((msg.indexOf("files were compiled") >= 0)
+                        || (msg.indexOf("Linking...") >= 0)
+                        || (msg.indexOf("Starting link") >= 0)
+                        ||
(msg.indexOf("Execute:Java13CommandLauncher") >= 0)) {
             		log.info(msg);
             	} else if (msg.indexOf("error") >= 0) {
             		log.error(msg);
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarManager.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarManager.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarManager.java 1.6
@@ -6,17 +6,23 @@
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.Iterator;
+import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-import java.util.LinkedList;
+import java.util.Set;
 import java.util.jar.JarFile;
 
+import java.util.logging.Level;
+import java.util.logging.Logger;
 import org.apache.maven.artifact.Artifact;
 import org.apache.maven.artifact.repository.ArtifactRepository;
 import org.apache.maven.artifact.resolver.ArtifactNotFoundException;
 import org.apache.maven.artifact.resolver.ArtifactResolutionException;
 import org.apache.maven.artifact.resolver.ArtifactResolver;
+import org.apache.maven.artifact.resolver.DefaultArtifactResolver;
+import
org.apache.maven.artifact.transform.ReleaseArtifactTransformation;
 import
org.apache.maven.artifact.versioning.InvalidVersionSpecificationExceptio
n;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.logging.Log;
@@ -29,16 +35,17 @@
 
 public class NarManager {
 
-	private Log log;
+	private final Log log;
 
-	private MavenProject project;
+	private final MavenProject project;
 
-	private ArtifactRepository repository;
+	private final ArtifactRepository repository;
 
-	private AOL defaultAOL;
-	private String linkerName;
+	private final AOL defaultAOL;
+	private final String linkerName;
 	
-	private String[] narTypes = { "noarch", Library.STATIC,
Library.SHARED, Library.JNI, Library.PLUGIN };
+	private final String[] narTypes = { "noarch", Library.STATIC,
+			Library.SHARED, Library.JNI, Library.PLUGIN };
 
 	public NarManager(Log log, ArtifactRepository repository,
 			MavenProject project, String architecture,
String os, Linker linker)
@@ -46,8 +53,8 @@
 		this.log = log;
 		this.repository = repository;
 		this.project = project;
-		this.defaultAOL = NarUtil.getAOL(architecture, os,
linker, null);
-		this.linkerName = NarUtil.getLinkerName(architecture,
os, linker);
+		defaultAOL = NarUtil.getAOL(architecture, os, linker,
null);
+		linkerName = NarUtil.getLinkerName(architecture, os,
linker);
 	}
 
 	/**
@@ -56,16 +63,75 @@
 	 */
 	public List/* <NarArtifact> */getNarDependencies(String scope)
 			throws MojoExecutionException {
+
+            //SOLEIL LOG
+            log.debug("List of dependencies : ");
+            List dependencies = project.getDependencies();
+            for (Iterator iterator = dependencies.iterator();
iterator.hasNext();) {
+                Dependency object = (Dependency) iterator.next();
+                log.debug("Found dependency : " + object.toString());
+            }
+            log.debug("List of artifacts : ");
+//            List artifacts = project.getCompileClasspathElements();
//Artifacts();
+    		Set artifacts = project.getArtifacts();
+            //project.getCompileClasspathElements();
+            for (Iterator iterator = artifacts.iterator();
iterator.hasNext();) {
+                Artifact object = (Artifact) iterator.next();
+                log.debug("Found artifact : " + object.toString() + " "
+ object.getBaseVersion() + " "+ object.getVersion() + " " +
object.isResolved());
+
+                log.debug("Found artifact : " + object.toString() + " "
+ object.getBaseVersion() + " "+ object.getVersion() + " " +
object.isResolved());
+            }
+            
+            Set darts = project.getDependencyArtifacts();
+            for (Iterator iterator = darts.iterator();
iterator.hasNext();) {
+                log.debug("Found dart : " + iterator.next());
+            }
+            //SOLEIL LOG
+
+
+
 		List narDependencies = new LinkedList();
-		for (Iterator i = getDependencies(scope).iterator();
i.hasNext();) {
+		for (Iterator i =
this.getDependencies(scope).iterator(); i.hasNext();) {
 			Artifact dependency = (Artifact) i.next();
-			log.debug("Examining artifact for NarInfo:
"+dependency);
+			log.debug("Examining artifact for NarInfo: " +
dependency);
 			
-			NarInfo narInfo = getNarInfo(dependency);
+			NarInfo narInfo = this.getNarInfo(dependency);
+			// TODO Take a account when it's a direct
NarAttached dependency
+			// with classifier data
+			// IDEA : create a fake NarInfo
+			if (narInfo == null) {
+				narInfo = new
NarInfo(dependency.getGroupId(), dependency
+						.getArtifactId(),
dependency.getVersion(), log);
+				// Setting binding from classifier
+				String classifier =
dependency.getClassifier();
+				if (classifier != null) {
+					int dash =
classifier.lastIndexOf('-');
+					if (dash >= 0) {
+						AOL aol = new
AOL(classifier.substring(0, dash));
+						String type =
classifier.substring(dash + 1);
+						narInfo.setBinding(aol,
type);
+
+						// Add NAR from
+						narInfo.setNar(null,
type, dependency.getGroupId()
+								+ ":" +
dependency.getArtifactId() + ":"
+								+
NarConstants.NAR_TYPE + ":"
+								+ (aol
!= null ? "${aol}-" : "") + type);
+
+						// Add noarch
+						narInfo.setNar(null,
NarConstants.NAR_NO_ARCH,
+
dependency.getGroupId() + ":"
+
+ dependency.getArtifactId() + ":"
+
+ NarConstants.NAR_TYPE + ":"
+
+ NarConstants.NAR_NO_ARCH);
+					}
+				}
+			}
+			// END OF PATCH
 			if (narInfo != null) {
 				log.debug("    - added as
NarDependency");
 				narDependencies.add(new
NarArtifact(dependency, narInfo));
 			}
+			//
 		}
 		return narDependencies;
 	}
@@ -79,22 +145,24 @@
 	public Map/* <String, List<AttachedNarArtifact>>
*/getAttachedNarDependencyMap(
 			String scope) throws MojoExecutionException,
MojoFailureException {
 		Map attachedNarDependencies = new HashMap();
-		for (Iterator i = getNarDependencies(scope).iterator();
i.hasNext();) {
+		for (Iterator i =
this.getNarDependencies(scope).iterator(); i
+				.hasNext();) {
 			Artifact dependency = (Artifact) i.next();
 			for (int j = 0; j < narTypes.length; j++) {
-				List artifactList =
getAttachedNarDependencies(dependency,
+				List artifactList =
this.getAttachedNarDependencies(dependency,
 						defaultAOL,
narTypes[j]);
-				if (artifactList != null)
+				if (artifactList != null) {
 
attachedNarDependencies.put(narTypes[j], artifactList);
 			}
 		}
+		}
 		return attachedNarDependencies;
 	}
 
 	public List/* <AttachedNarArtifact>
*/getAttachedNarDependencies(
 			List/* <NarArtifacts> */narArtifacts)
 			throws MojoExecutionException,
MojoFailureException {
-		return getAttachedNarDependencies(narArtifacts, null);
+		return this.getAttachedNarDependencies(narArtifacts,
null);
 	}
 
 	public List/* <AttachedNarArtifact>
*/getAttachedNarDependencies(
@@ -112,7 +180,7 @@
 				type = classifier.substring(dash + 1);
 			}
 		}
-		return getAttachedNarDependencies(narArtifacts, aol,
type);
+		return this.getAttachedNarDependencies(narArtifacts,
aol, type);
 	}
 
 	/**
@@ -143,9 +211,9 @@
 		List artifactList = new ArrayList();
 		for (Iterator i = narArtifacts.iterator(); i.hasNext();)
{
 			Artifact dependency = (Artifact) i.next();
-			NarInfo narInfo = getNarInfo(dependency);
+			NarInfo narInfo = this.getNarInfo(dependency);
 			if (noarch) {
-
artifactList.addAll(getAttachedNarDependencies(dependency,
+
artifactList.addAll(this.getAttachedNarDependencies(dependency,
 						null, "noarch"));
 			}
 
@@ -156,11 +224,11 @@
 			// FIXME kludge, but does not work anymore since
AOL is now a class
 			if (aol.equals("noarch")) {
 				// FIXME no handling of local
-
artifactList.addAll(getAttachedNarDependencies(dependency,
+
artifactList.addAll(this.getAttachedNarDependencies(dependency,
 						null, "noarch"));
 			} else {
-
artifactList.addAll(getAttachedNarDependencies(dependency, aol,
-						binding));
+
artifactList.addAll(this.getAttachedNarDependencies(dependency,
+						aol, binding));
 			}
 		}
 		return artifactList;
@@ -169,16 +237,18 @@
 	private List/* <AttachedNarArtifact>
*/getAttachedNarDependencies(
 			Artifact dependency, AOL aol, String type)
 			throws MojoExecutionException,
MojoFailureException {
-		log.debug("GetNarDependencies for " + dependency + ",
aol: " + aol + ", type: " + type);
+		log.debug("GetNarDependencies for " + dependency + ",
aol: " + aol
+				+ ", type: " + type);
 		List artifactList = new ArrayList();
-		NarInfo narInfo = getNarInfo(dependency);
+		NarInfo narInfo = this.getNarInfo(dependency);
 		String[] nars = narInfo.getAttachedNars(aol, type);
 		// FIXME Move this to NarInfo....
 		if (nars != null) {
 			for (int j = 0; j < nars.length; j++) {
 				log.debug("    Checking: " + nars[j]);
-				if (nars[j].equals(""))
+				if (nars[j].equals("")) {
 					continue;
+				}
 				String[] nar = nars[j].split(":", 5);
 				if (nar.length >= 4) {
 					try {
@@ -189,8 +259,8 @@
 						// translate for
instance g++ to gcc...
 						aol =
narInfo.getAOL(aol);
 						if (aol != null) {
-							classifier =
NarUtil.replace("${aol}", aol.toString(),
-
classifier);
+							classifier =
NarUtil.replace("${aol}", aol
+
.toString(), classifier);
 						}
 						String version =
nar.length >= 5 ? nar[4].trim()
 								:
dependency.getVersion();
@@ -216,22 +286,53 @@
 			throws MojoExecutionException {
 		// FIXME reported to maven developer list, isSnapshot
changes behaviour
 		// of getBaseVersion, called in pathOf.
-		if (dependency.isSnapshot())
+		if (dependency.isSnapshot()) {
 			;
+		}
+		// TODO Take a account when it's a direct NarAttached
dependency
+		// with classifier data
+		// IDEA : create a fake NarInfo
+		NarInfo info = null;
+		if (dependency instanceof NarArtifact) {
+			info = ((NarArtifact) dependency).getNarInfo();
+		} else {
 
-		File file = new File(repository.getBasedir(), repository
-				.pathOf(dependency));
+            //XXX : Problem with RELEASE version label
+            File file = null;
+
if(dependency.getVersion().equals(Artifact.RELEASE_VERSION)){
+                 file = dependency.getFile();
+                    // RESOLVE VERSION
+                    // Maybe with DefaultArtifactResolver dar =  ???
+                    //
ReleaseArtifactTransformation.transformForResolve
+                    //new
ReleaseArtifactTransformation().transformForResolve(dependency,
project.getRepositories(),  repository);
+                    // Quickfix : version from file !!!
+                    String version = file.getName();
+                    String artifactId = dependency.getArtifactId();
+                    int begin =
version.indexOf(artifactId)+artifactId.length()+1;//index of the first
character of version string
+                    int end = version.indexOf(".jar");
+                    version = version.substring(begin,end);
+                    dependency.setVersion(version);
+                    //
+
+            }else{
+                // the correct mean is above but i don't want break old
behaviour
+                 file = new File(repository.getBasedir(),
repository.pathOf(dependency));
+            }
+            
+
 		JarFile jar = null;
 		try {
 			jar = new JarFile(file);
-			NarInfo info = new
NarInfo(dependency.getGroupId(), dependency
+				info = new
NarInfo(dependency.getGroupId(), dependency
 					.getArtifactId(),
dependency.getVersion(), log);
-			if (!info.exists(jar))
-				return null;
+				if (info.exists(jar)) {
 			info.read(jar);
-			return info;
+				} else {
+					info = null;
+				}
 		} catch (IOException e) {
-			throw new MojoExecutionException("Error while
reading " + file, e);
+				throw new MojoExecutionException("Error
while reading " + file,
+						e);
 		} finally {
 			if (jar != null) {
 				try {
@@ -242,12 +343,15 @@
 			}
 		}
 	}
+		return info;
+	}
 
 	public File getNarFile(Artifact dependency) throws
MojoFailureException {
 		// FIXME reported to maven developer list, isSnapshot
changes behaviour
 		// of getBaseVersion, called in pathOf.
-		if (dependency.isSnapshot())
+		if (dependency.isSnapshot()) {
 			;
+		}
 		return new File(repository.getBasedir(),
NarUtil.replace("${aol}",
 				defaultAOL.toString(),
repository.pathOf(dependency)));
 	}
@@ -258,16 +362,34 @@
 		} else if (scope.equals("runtime")) {
 			return project.getRuntimeArtifacts();
 		}
-		return project.getCompileArtifacts();
+		return this.getCompileArtifacts();
 	}
 
+	// Hacked from maven source without isAddedToClasspath() check
+	private List getCompileArtifacts() {
+		List list = new
ArrayList(project.getArtifacts().size());
+
+		for (Iterator i = project.getArtifacts().iterator();
i.hasNext();) {
+			Artifact a = (Artifact) i.next();
+
+			// TODO: let the scope handler deal with this
+			if (Artifact.SCOPE_COMPILE.equals(a.getScope())
+					||
Artifact.SCOPE_PROVIDED.equals(a.getScope())
+					||
Artifact.SCOPE_SYSTEM.equals(a.getScope())) {
+				list.add(a);
+			}
+		}
+		return list;
+	}
+
 	public void downloadAttachedNars(List/* <NarArtifacts>
*/narArtifacts,
 			List remoteRepositories, ArtifactResolver
resolver,
 			String classifier) throws
MojoExecutionException,
 			MojoFailureException {
 		// FIXME this may not be the right way to do this.... -U
ignored and
 		// also SNAPSHOT not used
-		List dependencies =
getAttachedNarDependencies(narArtifacts, classifier);
+		List dependencies =
this.getAttachedNarDependencies(narArtifacts,
+				classifier);
 		for (Iterator i = dependencies.iterator(); i.hasNext();)
{
 			Artifact dependency = (Artifact) i.next();
 			try {
@@ -286,17 +408,19 @@
 	public void unpackAttachedNars(List/* <NarArtifacts>
*/narArtifacts,
 			ArchiverManager manager, String classifier,
String os)
 			throws MojoExecutionException,
MojoFailureException {
-		log.debug("Unpack called for OS: "+os+", classifier:
"+classifier+" for NarArtifacts {");
-		for (Iterator i = narArtifacts.iterator(); i.hasNext();
) {
-			log.debug("  - "+((NarArtifact)i.next()));
+		log.debug("Unpack called for OS: " + os + ", classifier:
" + classifier
+				+ " for NarArtifacts {");
+		for (Iterator i = narArtifacts.iterator(); i.hasNext();)
{
+			log.debug("  - " + (i.next()));
 		}
 		log.debug("}");
 		// FIXME, kludge to get to download the -noarch, based
on classifier
-		List dependencies =
getAttachedNarDependencies(narArtifacts, classifier);
+		List dependencies =
this.getAttachedNarDependencies(narArtifacts,
+				classifier);
 		for (Iterator i = dependencies.iterator(); i.hasNext();)
{
 			Artifact dependency = (Artifact) i.next();
 			log.debug("Unpack " + dependency);
-			File file = getNarFile(dependency);
+			File file = this.getNarFile(dependency);
 			File narLocation = new
File(file.getParentFile(), "nar");
 			File flagFile = new File(narLocation,
FileUtils.basename(file
 					.getPath(), "." +
AbstractNarMojo.NAR_EXTENSION)
@@ -314,22 +438,25 @@
 
 			if (process) {
 				try {
-					unpackNar(manager, file,
narLocation);
+					this.unpackNar(manager, file,
narLocation);
 					if
(!NarUtil.getOS(os).equals("Windows")) {
-
NarUtil.makeExecutable(new File(narLocation, "bin/"+defaultAOL),
-								log);
+
NarUtil.makeExecutable(new File(narLocation, "bin/"
+								+
defaultAOL), log);
 						// FIXME clumsy
 						if
(defaultAOL.hasLinker("g++")) {
-
NarUtil.makeExecutable(new File(narLocation,
"bin/"+NarUtil.replace("g++", "gcc", defaultAOL.toString())),
-
log);							
+
NarUtil.makeExecutable(new File(narLocation, "bin/"
+
+ NarUtil.replace("g++", "gcc", defaultAOL
+
.toString())), log);
 						}
 					}
 					if (linkerName.equals("gcc") ||
linkerName.equals("g++")) {
-						NarUtil.runRanlib(new
File(narLocation, "lib/"+defaultAOL), log);
+						NarUtil.runRanlib(new
File(narLocation, "lib/"
+								+
defaultAOL), log);
 						// FIXME clumsy
 						if
(defaultAOL.hasLinker("g++")) {
-
NarUtil.runRanlib(new File(narLocation, "lib/"+NarUtil.replace("g++",
"gcc", defaultAOL.toString())),
-
log);							
+
NarUtil.runRanlib(new File(narLocation, "lib/"
+
+ NarUtil.replace("g++", "gcc", defaultAOL
+
.toString())), log);
 						}
 					}
 
FileUtils.fileDelete(flagFile.getPath());
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarPackageMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarPackageMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarPackageMojo.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarResourcesMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarResourcesMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarResourcesMojo.java 1.2
@@ -23,7 +23,7 @@
  * @phase process-resources
  * @requiresProject
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: NarResourcesMojo.java,v 1.1 2009/04/03 07:11:37
hardion Exp $
+ * @version $Id: NarResourcesMojo.java,v 1.2 2009/04/03 11:52:36
hardion Exp $
  */
 public class NarResourcesMojo extends AbstractCompileMojo {
 
@@ -62,14 +62,16 @@
     /**
      * To look up Archiver/UnArchiver implementations
      *
-     * @parameter
expression="${component.org.codehaus.plexus.archiver.manager.ArchiverMan
ager}"
+	 * @parameter expression=
+	 *
"${component.org.codehaus.plexus.archiver.manager.ArchiverManager}"
      * @required
      */
     private ArchiverManager archiverManager;
 
 	public void execute() throws MojoExecutionException,
MojoFailureException {
-		if (shouldSkip())
+		if (this.shouldSkip()) {
 			return;
+		}
 
 		// scan for AOLs
 		File aolDir = new File(resourceDirectory, "aol");
@@ -79,14 +81,15 @@
 				boolean ignore = false;
 				for (Iterator j =
FileUtils.getDefaultExcludesAsList()
 						.iterator();
j.hasNext();) {
-					String exclude =
(String)j.next();
-					if
(SelectorUtils.matchPath(exclude.replace('/', File.separatorChar),
aols[i])) {
+					String exclude = (String)
j.next();
+					if
(SelectorUtils.matchPath(exclude.replace('/',
+
File.separatorChar), aols[i])) {
 						ignore = true;
 						break;
 					}
 				}
 				if (!ignore) {
-					copyResources(new File(aolDir,
aols[i]));
+					this.copyResources(new
File(aolDir, aols[i]));
 				}
 			}
 		}
@@ -100,7 +103,8 @@
 			// copy headers
 			File includeDir = new File(aolDir,
resourceIncludeDir);
 			if (includeDir.exists()) {
-				File includeDstDir = new
File(getTargetDirectory(), "include");
+				File includeDstDir = new
File(this.getTargetDirectory(),
+						"include");
 				includeDstDir = new File(includeDstDir,
aol);
 
                 copied += NarUtil.copyDirectoryStructure(includeDir,
@@ -110,7 +114,7 @@
 			// copy binaries
 			File binDir = new File(aolDir, resourceBinDir);
 			if (binDir.exists()) {
-				File binDstDir = new
File(getTargetDirectory(), "bin");
+				File binDstDir = new
File(this.getTargetDirectory(), "bin");
 				binDstDir = new File(binDstDir, aol);
 
 				copied +=
NarUtil.copyDirectoryStructure(binDir, binDstDir,
@@ -121,33 +125,54 @@
 			File libDir = new File(aolDir, resourceLibDir);
 			if (libDir.exists()) {
 				// create all types of libs
-				for (Iterator i =
getLibraries().iterator(); i.hasNext();) {
+				for (Iterator i =
this.getLibraries().iterator(); i.hasNext();) {
 					Library library = (Library)
i.next();
 					String type = library.getType();
-					File libDstDir = new
File(getTargetDirectory(), "lib");
+
+					// Copy from typed directory
+					File typedLibDir = new
File(libDir, type);
+					if (typedLibDir.exists()) {
+
+						File libDstDir = new
File(this.getTargetDirectory(),
+								"lib");
 					libDstDir = new File(libDstDir,
aol);
 					libDstDir = new File(libDstDir,
type);
 
 					// filter files for lib
-                    // TODO For shared library under windows copy the
.lib too
-					String includes = "**/*."
-							+
NarUtil.getDefaults().getProperty(
-
NarUtil.getAOLKey(aol) + "." + type
-
+ ".extension");
-					copied +=
NarUtil.copyDirectoryStructure(libDir, libDstDir,
-							includes,
NarUtil.DEFAULT_EXCLUDES);
+						String includes =
"**/*.*";
+						// +
NarUtil.getDefaults().getProperty(
+						//
NarUtil.getAOLKey(aol) + "." + type
+						// + ".extension");
+						// // For shared library
under windows copy the .lib too
+						// if
((type.equals(Library.SHARED))
+						// &&
NarUtil.getAOLKey(aol).endsWith(
+						// "Windows-msvc")) {
+						// includes = includes
+						// + ","
+						// +
NarUtil.getDefaults().getProperty(
+						//
NarUtil.getAOLKey(aol) + "."
+						// + Library.STATIC
+						// + ".extension");
+						// this.getLog().debug(
+						// "add import lib for
dll for windows ");
+						// }
+						copied +=
NarUtil.copyDirectoryStructure(typedLibDir,
+
libDstDir, includes, NarUtil.DEFAULT_EXCLUDES);
 				}
 			}
+			}
 			
 			// unpack jar files
-			File classesDirectory = new
File(getOutputDirectory(),"classes");
+			File classesDirectory = new
File(this.getOutputDirectory(),
+					"classes");
 			classesDirectory.mkdirs();
 			List jars = FileUtils.getFiles(aolDir,
"**/*.jar", null);
-			for (Iterator i=jars.iterator(); i.hasNext(); )
{
-				File jar = (File)i.next();
-				getLog().debug("Unpacking jar "+jar);
+			for (Iterator i = jars.iterator(); i.hasNext();)
{
+				File jar = (File) i.next();
+				this.getLog().debug("Unpacking jar " +
jar);
 				UnArchiver unArchiver;
-				unArchiver =
archiverManager.getUnArchiver(AbstractNarMojo.NAR_ROLE_HINT);
+				unArchiver = archiverManager
+
.getUnArchiver(AbstractNarMojo.NAR_ROLE_HINT);
 				unArchiver.setSourceFile(jar);
 
unArchiver.setDestDirectory(classesDirectory);
 				unArchiver.extract();
@@ -157,9 +182,10 @@
 		} catch (NoSuchArchiverException e) {
 			throw new MojoExecutionException("NAR: Could not
find archiver", e);
 		} catch (ArchiverException e) {
-			throw new MojoExecutionException("NAR: Could not
unarchive jar file", e);
+			throw new MojoExecutionException(
+					"NAR: Could not unarchive jar
file", e);
 		}
-		getLog().info("Copied " + copied + " resources for " +
aol);
+		this.getLog().info("Copied " + copied + " resources for
" + aol);
 	}
 
 }
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarSystemGenerate.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarSystemGenerate.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarSystemGenerate.java 1.2
@@ -7,6 +7,10 @@
 import java.io.PrintWriter;
 import java.util.Iterator;
 
+import java.util.List;
+import java.util.Set;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 
@@ -18,13 +22,25 @@
  * @phase generate-sources
  * @requiresProject
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: NarSystemGenerate.java,v 1.1 2009/04/03 07:11:37
hardion Exp $
+ * @version $Id: NarSystemGenerate.java,v 1.2 2009/05/15 16:20:58
hardion Exp $
  */
 public class NarSystemGenerate extends AbstractCompileMojo {
 
 	public void execute() throws MojoExecutionException,
MojoFailureException {
 		if (shouldSkip())
 			return;
+		this.getLog().debug("List of dependencies : ");
+		List dependencies =
this.getMavenProject().getDependencies();
+		for (Iterator iterator = dependencies.iterator();
iterator.hasNext();) {
+			Dependency object = (Dependency)
iterator.next();
+			this.getLog().debug("Found dependency : " +
object.toString());
+		}
+		this.getLog().debug("List of artifacts : ");
+		Set artifacts = this.getMavenProject().getArtifacts();
+		for (Iterator iterator = artifacts.iterator();
iterator.hasNext();) {
+			Artifact object = (Artifact) iterator.next();
+            this.getLog().debug("Found artifact : " + object.toString()
+" "+ object.getVersion()+" "+object.isResolved());
+		}
 
 		// get packageName if specified for JNI.
 		String packageName = null;
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarTestCompileMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarTestCompileMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarTestCompileMojo.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarTestMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarTestMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarTestMojo.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUnArchiver.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUnArchiver.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUnArchiver.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUnpackMojo.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUnpackMojo.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUnpackMojo.java 1.11
@@ -4,8 +4,15 @@
 import java.util.Iterator;
 import java.util.List;
 
+import java.util.Set;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import org.apache.maven.artifact.Artifact;
+import org.apache.maven.artifact.DependencyResolutionRequiredException;
+import org.apache.maven.model.Dependency;
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
+import org.apache.maven.project.MavenProject;
 import org.codehaus.plexus.archiver.manager.ArchiverManager;
 
 /**
@@ -13,11 +20,11 @@
  * and also sets flags on binaries and corrects static libraries.
  * 
  * @goal nar-unpack
- * @phase process-sources
+ * @phase generate-sources
  * @requiresProject
  * @requiresDependencyResolution
  * @author <a href="Mark.Donszelmann@slac.stanford.edu">Mark
Donszelmann</a>
- * @version $Id: NarUnpackMojo.java,v 1.1 2009/04/03 07:11:37 hardion
Exp $
+ * @version $Id: NarUnpackMojo.java,v 1.11 2009/05/19 07:45:32 hardion
Exp $
  */
 public class NarUnpackMojo extends AbstractDependencyMojo {
 
@@ -38,8 +45,9 @@
     private ArchiverManager archiverManager;
 
     public void execute() throws MojoExecutionException,
MojoFailureException {
-    	if (shouldSkip()) return;
-    	
+            if (shouldSkip()) {
+                return;
+            }
 		List narArtifacts =
getNarManager().getNarDependencies("compile");
         if (classifiers == null) {
             getNarManager().unpackAttachedNars(narArtifacts,
archiverManager, null, getOS());
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUtil.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUtil.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/NarUtil.java 1.4
@@ -6,6 +6,7 @@
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
+import java.util.Collection;
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
@@ -18,13 +19,14 @@
 import org.apache.maven.plugin.MojoExecutionException;
 import org.apache.maven.plugin.MojoFailureException;
 import org.apache.maven.plugin.logging.Log;
+import org.apache.maven.plugin.logging.SystemStreamLog;
 import org.codehaus.plexus.util.FileUtils;
 import org.codehaus.plexus.util.PropertyUtils;
 import org.codehaus.plexus.util.cli.Commandline;
 
 /**
  * @author Mark Donszelmann
- * @version $Id: NarUtil.java,v 1.1 2009/04/03 07:11:37 hardion Exp $
+ * @version $Id: NarUtil.java,v 1.4 2009/07/20 17:13:38 hardion Exp $
  */
 public class NarUtil {
 
@@ -207,6 +209,7 @@
 		/* Matcher. jdk 1.4
*/quoteReplacement(replacement.toString()));
 	}
 
+
 	/* for jdk 1.4 */
 	private static String quote(String s) {
 		int slashEIndex = s.indexOf("\\E");
@@ -414,4 +417,31 @@
 		}
 	}
 
+    private static Log LOG = new SystemStreamLog();
+
+    public final static <T extends Collection> T
enhanceCollection(String name, final T original, final T enhancer) {
+        T result = original;
+//        LOG.debug(name+" Enhance Collection :"+original+" (original)
:"+enhancer+" (enhancer)");
+        // Not initialized List case
+        if (enhancer != null) {
+            if (original == null) {
+                result = enhancer;
+            } else {
+                result.addAll(enhancer);
 }
+//            LOG.debug(name+" Collection enhanced:"+original+"
(original) :"+enhancer+" (enhancer) : "+result+" (result)");
+        }
+        return result;
+    }
+
+     public final static <T> T enhanceDefaultObject(String name, final
T original, final T enhancer, final T defaultValue) {
+        T result = original;
+//        LOG.debug(name+" Enhance Object :"+original+" (original)
:"+enhancer+" (enhancer)");
+        if ((enhancer != null) && !(enhancer.equals(defaultValue))) {
+            result = enhancer;
+//            LOG.debug(name+" Object enhanced:"+original+" (original)
:"+enhancer+" (enhancer) : "+result+" (result)");
+        }
+        return result;
+    }
+
+}
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/OS.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/OS.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/OS.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/SysLib.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/SysLib.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/SysLib.java 1.1
Index:
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Test.java
---
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Test.java 1.1
+++
ContinuousIntegration/maven/plugins/freehep-nar-plugin/src/main/java/org
/freehep/maven/nar/Test.java 1.1

Best regards,

Vincent Hardion



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


RE : AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by HARDION Vincent <vi...@synchrotron-soleil.fr>.
Hi all,

Mark,
Pleased to receive news from you about the NAR project.

You can find the patch from the version 2.0-alpha-11-SNAPSHOT (04/2009).
As we use cvs in our company, I can't report all commit so don't hesitate to mail me about why.

The patch add some features like :

Import 3rd Party :
	- include import libraries with .dll for windows
	- Possibility to add include dependant from platform (This point breaks the no_arch philosophy !!!)

Configuration :
	- Allows to define specific configuration enabled following the value of different variables (aol, os, debug mode etc ...) inspired from profile activation. These specifics configurations enhance the default configuration.

We also fix some minor bug and other that I don't remember but I can find.
I hope this may help.

Last question: I read somewhere that NAR plugin was given to Sonatype ?

Best regards,

Vincent Hardion


-----Message d'origine-----
De�: Donszelmann Mark [mailto:mark.donszelmann@gmail.com] 
Envoy�: mardi 18 ao�t 2009 09:44
��: Maven Users List
Objet�: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Hi

I am the original author of the freehep-nar-plugin. It was made at  
SLAC, Stanford Linear Accelerator Center,
when I worked there. In my current job, which terminates on september  
15, I hade no time to support this
and the other Native code related plugins.

I am planning to pick things up again middle of september. I would be  
interested in your lists of things that
fail to work with NAR, though I can think of a few myself. Any patches  
you have created can be applied if
they work fine for NAR.

I plan to build some good test cases, and some better examples so that  
things run out of the box.

Let me know

Regards
Mark Donszelmann


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



Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Donszelmann Mark <ma...@gmail.com>.
Hi

I am the original author of the freehep-nar-plugin. It was made at  
SLAC, Stanford Linear Accelerator Center,
when I worked there. In my current job, which terminates on september  
15, I hade no time to support this
and the other Native code related plugins.

I am planning to pick things up again middle of september. I would be  
interested in your lists of things that
fail to work with NAR, though I can think of a few myself. Any patches  
you have created can be applied if
they work fine for NAR.

I plan to build some good test cases, and some better examples so that  
things run out of the box.

Let me know

Regards
Mark Donszelmann


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


AW: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jan Wedel <Ja...@ettex.de>.
So, you just have to include the DUMMY part, but the resulting file name 
does not include it?

Anyhow, as you have some experience in studying the code, what would you 
say how difficult is it to include a new compiler that is not currently 
supported by the nar? I read that NAR is using the ant cpptasks for 
calling the native compilers. Is it just adding a new xml entry 
somewhere or do I have to modify the plugin itself?

Thanks,

Jan


-----Ursprüngliche Nachricht-----
Von: Jörg Schaible [mailto:joerg.schaible@gmx.de] 
Gesendet: Dienstag, 18. August 2009 09:19
An: users@maven.apache.org
Betreff: Re: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java 
Projects

Hi Jan,

Jan Wedel wrote at Dienstag, 18. August 2009 08:52:

[snip]

> @ Jörg:
> 
> Could you please also post an excerpt of the "demo-dll"-project POM 
and
> how you specify different classifiers in the first place?

================ %< ================
<project>
  [...]
  <groupId>com.acme.demo</groupId>
  <artifactId>demo-dll</artifactId>
  <packaging>nar</packaging>
  [...]
    <plugin>
      <groupId>org.freehep</groupId>
      <artifactId>freehep-nar-plugin</artifactId>
      <configuration>
        <runtime>static</runtime>
        <linker>
          <name>msvc</name>
        </linker>
        <libraries>
          <library>
            <type>shared</type>
          </library>
        </libraries>
        <c>
          <optimize>speed</optimize>
        </c>
      </configuration>
    </plugin>
  [...]
</project>
================ %< ================

So, actually we do not define the classifier, it is auto-generated by 
the
nar plugin based on the environment in use.

- Jörg


---------------------------------------------------------------------
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: AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jörg Schaible <jo...@gmx.de>.
Hi Jan,

Jan Wedel wrote at Dienstag, 18. August 2009 08:52:

[snip]

> @ Jörg:
> 
> Could you please also post an excerpt of the "demo-dll"-project POM and
> how you specify different classifiers in the first place?

================ %< ================
<project>
  [...]
  <groupId>com.acme.demo</groupId>
  <artifactId>demo-dll</artifactId>
  <packaging>nar</packaging>
  [...]
    <plugin>
      <groupId>org.freehep</groupId>
      <artifactId>freehep-nar-plugin</artifactId>
      <configuration>
        <runtime>static</runtime>
        <linker>
          <name>msvc</name>
        </linker>
        <libraries>
          <library>
            <type>shared</type>
          </library>
        </libraries>
        <c>
          <optimize>speed</optimize>
        </c>
      </configuration>
    </plugin>
  [...]
</project>
================ %< ================

So, actually we do not define the classifier, it is auto-generated by the
nar plugin based on the environment in use.

- Jörg


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


Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jörg Schaible <jo...@gmx.de>.
Hi Vincent,

Vincent Hardion wrote at Dienstag, 18. August 2009 01:00:

> Hi,

[snip]

>>    Agree and it's quite pain with platform dependent languages such
>> C/C++
>>    How do you cope with this problem ?
> 
> In fact, there are more than one variable in this problem. In C++, we
> have to think also with release/debug mode et static/shared linking
> for library.
> 
> We tried several solutions. The most integrated to maven should be to
> set the classifier field of pom used to  distinguish jdk.
> But It doesn't work for 2 reasons :
> Nar plugin doesn't support it all (I had more than patch it)

Are you sure about this. We don't have such a deep dependency tree like you,
but for us the original plugin works using a forth "dummy" part in the
classifier:

================ %< ================
<project>
  [...]
  <plugin>
    <groupId>org.freehep</groupId>
    <artifactId>freehep-nar-plugin</artifactId>
    <executions>
      <execution>
        <goals>
          <goal>nar-download</goal>
          <goal>nar-unpack</goal>
          <goal>nar-assembly</goal>
        </goals>
      </execution>
    </executions>
    <configuration>
      <classifiers>
        <classifier>x86-Windows-msvc-DUMMY</classifier>
      </classifiers>
    </configuration>
  </plugin>
  [...]
  <dependencies>
    [...]
    <dependency>
      <groupId>com.acme.demo</groupId>
      <artifactId>demo-dll</artifactId>
    </dependency>
    [...]
  </dependencies>
  [...]
</project>
================ %< ================

We got this insight also by code inspection of the NAR plugin. We have no
idea, what this 4th component in the classifier should be used for
normally, but it is necessary for the nar plugin to reference it.

[snip]

- Jörg


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


RE : Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by HARDION Vincent <vi...@synchrotron-soleil.fr>.
Hi Jan,

The problem with dynamic artifactID is not a general issue of NAR plugin. The problem comes from Nexus when it rebuild fingerprint of metadata and .pom.
In the metadata the artifactId is interpolated not in the .pom file so Nexus delete fingerprint and can't rebuild them.

Regards,

Vincent Hardion


-----Message d'origine-----
De : Jan Wedel [mailto:Jan.Wedel@ettex.de] 
Envoyé : mardi 18 août 2009 08:53
À : users@maven.apache.org
Objet : AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

@ Vincent:

Great to hear that you can provide the patches.

Just for my understanding: Is is not possible to use Nexus because of 
the dynamic artifactID and Nexus being not eable to understand it? Or is 
it a general issue with the NAR plugin?

@ Jörg:

Could you please also post an excerpt of the "demo-dll"-project POM and 
how you specify different classifiers in the first place?

Thanks!

Jan

-----Ursprüngliche Nachricht-----
Von: Vincent Hardion [mailto:vincent.hardion@gmail.com] 
Gesendet: Dienstag, 18. August 2009 01:00
An: Maven Users List
Betreff: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Hi,

>   - Are your patches applied in the trunk of the nar plugin ?

I'm not commiter on the CVS of Freehep. But as suggest Jan, I'll send  
you the patch from the last known version once I come back to my office.

>   - Is the nar plugin works well also for other phase than compile  
> (for
> instance, test phase) ?

We didn't try yet the unit test with Cpp project maybe we'll use  
CppUnit. It's planned for Q4.
I know there are specials goals like nar-testCompile and nar-test but  
I can't tell you more.

>    Agree and it's quite pain with platform dependent languages such  
> C/C++
>    How do you cope with this problem ?

In fact, there are more than one variable in this problem. In C++, we  
have to think also with release/debug mode et static/shared linking  
for library.

We tried several solutions. The most integrated to maven should be to  
set the classifier field of pom used to  distinguish jdk.
But It doesn't work for 2 reasons :
Nar plugin doesn't support it all (I had more than patch it)
It breaks snapshot feature. The binaries are in the same deployment  
path with different timestamps.

So the workaround we choose contists to use a "dynamic" artifactId  
name with the OS name inner with a property.

We save lot of time of work but with the experience shows that this is  
not the best solution.
We can't longer use proxy manager like Nexus,  the BOM (import of  
version) is difficult and this won't be support longer by maven.
I think we could use the 1st solution by deploy artifacts after all  
compilation.

Best regards,

Vincent






Le 14 août 09 à 16:53, Rémy Sanlaville a écrit :

> Hi Vincent,
>
> Thanks for your interesting feedback.
>
> I have some more questions :
>   - Are your patches applied in the trunk of the nar plugin ?
>
>   - Is the nar plugin works well also for other phase than compile  
> (for
> instance, test phase) ? If yes, which unit test framework are you  
> using
> (CppUnit, CxxTest, googletest...) ?
>
>  - >In C++ with the same code, you need to build one binary for each
> platform. Worst, you need to build on each platform to generate the  
> good
> binary.
>    Agree and it's quite pain with platform dependent languages such  
> C/C++
>    How do you cope with this problem ?
>
> Rémy


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


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


AW: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jan Wedel <Ja...@ettex.de>.
@ Vincent:

Great to hear that you can provide the patches.

Just for my understanding: Is is not possible to use Nexus because of 
the dynamic artifactID and Nexus being not eable to understand it? Or is 
it a general issue with the NAR plugin?

@ Jörg:

Could you please also post an excerpt of the "demo-dll"-project POM and 
how you specify different classifiers in the first place?

Thanks!

Jan

-----Ursprüngliche Nachricht-----
Von: Vincent Hardion [mailto:vincent.hardion@gmail.com] 
Gesendet: Dienstag, 18. August 2009 01:00
An: Maven Users List
Betreff: Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Hi,

>   - Are your patches applied in the trunk of the nar plugin ?

I'm not commiter on the CVS of Freehep. But as suggest Jan, I'll send  
you the patch from the last known version once I come back to my office.

>   - Is the nar plugin works well also for other phase than compile  
> (for
> instance, test phase) ?

We didn't try yet the unit test with Cpp project maybe we'll use  
CppUnit. It's planned for Q4.
I know there are specials goals like nar-testCompile and nar-test but  
I can't tell you more.

>    Agree and it's quite pain with platform dependent languages such  
> C/C++
>    How do you cope with this problem ?

In fact, there are more than one variable in this problem. In C++, we  
have to think also with release/debug mode et static/shared linking  
for library.

We tried several solutions. The most integrated to maven should be to  
set the classifier field of pom used to  distinguish jdk.
But It doesn't work for 2 reasons :
Nar plugin doesn't support it all (I had more than patch it)
It breaks snapshot feature. The binaries are in the same deployment  
path with different timestamps.

So the workaround we choose contists to use a "dynamic" artifactId  
name with the OS name inner with a property.

We save lot of time of work but with the experience shows that this is  
not the best solution.
We can't longer use proxy manager like Nexus,  the BOM (import of  
version) is difficult and this won't be support longer by maven.
I think we could use the 1st solution by deploy artifacts after all  
compilation.

Best regards,

Vincent






Le 14 août 09 à 16:53, Rémy Sanlaville a écrit :

> Hi Vincent,
>
> Thanks for your interesting feedback.
>
> I have some more questions :
>   - Are your patches applied in the trunk of the nar plugin ?
>
>   - Is the nar plugin works well also for other phase than compile  
> (for
> instance, test phase) ? If yes, which unit test framework are you  
> using
> (CppUnit, CxxTest, googletest...) ?
>
>  - >In C++ with the same code, you need to build one binary for each
> platform. Worst, you need to build on each platform to generate the  
> good
> binary.
>    Agree and it's quite pain with platform dependent languages such  
> C/C++
>    How do you cope with this problem ?
>
> Rémy


---------------------------------------------------------------------
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: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Vincent Hardion <vi...@gmail.com>.
Hi,

>   - Are your patches applied in the trunk of the nar plugin ?

I'm not commiter on the CVS of Freehep. But as suggest Jan, I'll send  
you the patch from the last known version once I come back to my office.

>   - Is the nar plugin works well also for other phase than compile  
> (for
> instance, test phase) ?

We didn't try yet the unit test with Cpp project maybe we'll use  
CppUnit. It's planned for Q4.
I know there are specials goals like nar-testCompile and nar-test but  
I can't tell you more.

>    Agree and it's quite pain with platform dependent languages such  
> C/C++
>    How do you cope with this problem ?

In fact, there are more than one variable in this problem. In C++, we  
have to think also with release/debug mode et static/shared linking  
for library.

We tried several solutions. The most integrated to maven should be to  
set the classifier field of pom used to  distinguish jdk.
But It doesn't work for 2 reasons :
Nar plugin doesn't support it all (I had more than patch it)
It breaks snapshot feature. The binaries are in the same deployment  
path with different timestamps.

So the workaround we choose contists to use a "dynamic" artifactId  
name with the OS name inner with a property.

We save lot of time of work but with the experience shows that this is  
not the best solution.
We can't longer use proxy manager like Nexus,  the BOM (import of  
version) is difficult and this won't be support longer by maven.
I think we could use the 1st solution by deploy artifacts after all  
compilation.

Best regards,

Vincent






Le 14 août 09 à 16:53, Rémy Sanlaville a écrit :

> Hi Vincent,
>
> Thanks for your interesting feedback.
>
> I have some more questions :
>   - Are your patches applied in the trunk of the nar plugin ?
>
>   - Is the nar plugin works well also for other phase than compile  
> (for
> instance, test phase) ? If yes, which unit test framework are you  
> using
> (CppUnit, CxxTest, googletest...) ?
>
>  - >In C++ with the same code, you need to build one binary for each
> platform. Worst, you need to build on each platform to generate the  
> good
> binary.
>    Agree and it's quite pain with platform dependent languages such  
> C/C++
>    How do you cope with this problem ?
>
> Rémy


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


Re: RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Rémy Sanlaville <re...@gmail.com>.
Hi Vincent,

Thanks for your interesting feedback.

I have some more questions :
   - Are your patches applied in the trunk of the nar plugin ?

   - Is the nar plugin works well also for other phase than compile (for
instance, test phase) ? If yes, which unit test framework are you using
(CppUnit, CxxTest, googletest...) ?

  - >In C++ with the same code, you need to build one binary for each
platform. Worst, you need to build on each platform to generate the good
binary.
    Agree and it's quite pain with platform dependent languages such C/C++
    How do you cope with this problem ?

Rémy

RE: AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by "Pilgrim, Peter" <pe...@lloydsbanking.com>.
Hmm... interesting

Albeit that Rémy's use-case is about non-JVM language compilation, how easy is it now, in 2009, to write a general non-Java language compiler plug-in?
For example, can one take the Java compiler plug-in and then subclass it and create a JavaFX compiler plug-in in 24 hours?

-- 
Peter Pilgrim | E-Channel Services Technical Lead, Products & Markets 
Lloyds TSB Bank plc, Corporate Markets, 10 Gresham Street, London, EC2V 7AE, UK
' +44 (0)207 158 6135 | ( +44 (0)1234 567 8901
+ peter.pilgrim@lloydstsb.co.uk
: www.lloydstsbcorporatemarkets.com 
 

> -----Original Message-----
> From: Rémy Sanlaville [mailto:remy.sanlaville@gmail.com]
> Sent: 12 August 2009 12:23
> To: Maven Users List
> Subject: Re: AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects
> 
> We also try to use maven with C/C++ language (cf. [1]).
> 
> It seems that it exists three plugins :
>  1. native-*maven*-plugin (the first one ?)
>  2. jade native maven plugin, it is an spin off of native plugin and
> covers
> cppunit
>  3. nar plugin
> 
> At the time, it seemed (I don't remember why) that jade native maven
> plugin
> was the better.
> 
> To be honest, we weren't convinced of the ability to use such plugins in
> an
> industrial context :
>    - I agree with David, there were a couple of road-blocking
> bugs/missing-features that prevented us from using maven for these types
> of
> projects. It works quite nice for compilation (even if it can be better),
> but we had a lot difficulties for unit tests ;
>     - I agree with Jörg : plugins are nearly not supported - you  cannot
> ask
> questions, you have to find out anything yourself. There's no mailing list
> and the forum is full of questions without a lot answers, There's few
> documentations and often not up-to-date...
> 
> We are still waiting for a real/better solution to use maven with C/C++
> language. Otherwise, we have others projects using maven with flex, php or
> .NET.
> 
> Rémy
> 
> [1].
> http://www.nabble.com/Maven-2-and-C-C%2B%2B-Testing-Framework-
> td22311500.html#a22311500


This e-mail is private and confidential and may contain privileged material. If you have received this e-mail in error, please notify the sender and delete it immediately. You must not copy, distribute, disclose or use any of the information in it or any attachments.

Lloyds TSB Bank plc. Registered Office: 25 Gresham Street, London EC2V 7HN. Registered in England and Wales, number 2065. Telephone: 020 7626 1500.

Lloyds TSB Scotland plc. Registered Office: Henry Duncan House, 120 George Street, Edinburgh EH2 4LH. Registered in Scotland, number 95237. Telephone: 0131 225 4555.

Cheltenham & Gloucester plc. Registered Office: Barnett Way, Gloucester GL4 3RL. Registered in England and Wales, number 2299428. Telephone: 01452 372372.

Cheltenham & Gloucester Savings is a division of Lloyds TSB Bank plc.
Lloyds TSB Bank plc, Lloyds TSB Scotland plc and Cheltenham & Gloucester plc are authorised and regulated by the Financial Services Authority. 

Lloyds Banking Group plc. Registered Office: Henry Duncan House, 120 George Street, Edinburgh EH2 4LH. Registered in Scotland, number 95000. Telephone: 0131 225 4555.

Lloyds Banking Group plc is a signatory to the Banking Codes.

Telephone calls may be monitored or recorded.


______________________________________________________________________
This email has been scanned by the MessageLabs Email Security System.
For more information please visit http://www.messagelabs.com/email 
______________________________________________________________________

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


RE : AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by HARDION Vincent <vi...@synchrotron-soleil.fr>.
Hi all,

My quick feedback:

Recently we decided to migrate our entire 300 C++ project to maven.
Our project is platform independent (~) between windows-msvc and linux-gcc.

We use the nar plugin because we wanted a single pom.xml to describe a c++ project whatever the output (dll, so ...) and this plugin seemed more functional.
Yes, this plugin had lot bug but we worked to fix them through patch from us or from nar forum (Rest In Peace!!)
Now it works well, really well.

The main problem of maven with c++ building is the platform abstraction. Maven was built for java project and they only need to build one binary for all platforms.
In C++ with the same code, you need to build one binary for each platform. Worst, you need to build on each platform to generate the good binary. 

This last point gives us lot of work.

Just to finish with a positive note, our C++ developer was impressed by the dependency management of maven (none of the pure c++ tool builders has this news feature)

Regards,

Vincent Hardion


-----Message d'origine-----
De : Rémy Sanlaville [mailto:remy.sanlaville@gmail.com] 
Envoyé : mercredi 12 août 2009 13:23
À : Maven Users List
Objet : Re: AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

We also try to use maven with C/C++ language (cf. [1]).

It seems that it exists three plugins :
 1. native-*maven*-plugin (the first one ?)
 2. jade native maven plugin, it is an spin off of native plugin and covers
cppunit
 3. nar plugin

At the time, it seemed (I don't remember why) that jade native maven plugin
was the better.

To be honest, we weren't convinced of the ability to use such plugins in an
industrial context :
   - I agree with David, there were a couple of road-blocking
bugs/missing-features that prevented us from using maven for these types of
projects. It works quite nice for compilation (even if it can be better),
but we had a lot difficulties for unit tests ;
    - I agree with Jörg : plugins are nearly not supported - you  cannot ask
questions, you have to find out anything yourself. There's no mailing list
and the forum is full of questions without a lot answers, There's few
documentations and often not up-to-date...

We are still waiting for a real/better solution to use maven with C/C++
language. Otherwise, we have others projects using maven with flex, php or
.NET.

Rémy

[1].
http://www.nabble.com/Maven-2-and-C-C%2B%2B-Testing-Framework-td22311500.html#a22311500

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


Re: AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Rémy Sanlaville <re...@gmail.com>.
We also try to use maven with C/C++ language (cf. [1]).

It seems that it exists three plugins :
 1. native-*maven*-plugin (the first one ?)
 2. jade native maven plugin, it is an spin off of native plugin and covers
cppunit
 3. nar plugin

At the time, it seemed (I don't remember why) that jade native maven plugin
was the better.

To be honest, we weren't convinced of the ability to use such plugins in an
industrial context :
   - I agree with David, there were a couple of road-blocking
bugs/missing-features that prevented us from using maven for these types of
projects. It works quite nice for compilation (even if it can be better),
but we had a lot difficulties for unit tests ;
    - I agree with Jörg : plugins are nearly not supported - you  cannot ask
questions, you have to find out anything yourself. There's no mailing list
and the forum is full of questions without a lot answers, There's few
documentations and often not up-to-date...

We are still waiting for a real/better solution to use maven with C/C++
language. Otherwise, we have others projects using maven with flex, php or
.NET.

Rémy

[1].
http://www.nabble.com/Maven-2-and-C-C%2B%2B-Testing-Framework-td22311500.html#a22311500

Re: AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jörg Schaible <jo...@gmx.de>.
Jan Wedel wrote at Dienstag, 11. August 2009 16:28:

> As stated before by John,
> 
> There is a PHP plugin. Moreover, I found a .NET plugin. For C, Fortran
> and C++, the NAR plugin can be used. The maven-native-plugin indeed
> seems to be discontinued and on the maven nar website, they say they
> created their plugin because the maven native plugin wasn't flexible
> enough.
> 
> As far as I can say, their procedure sound very interesting. They bundle
> Header and object files and POM in a zip file called .nar which can be
> used as any Java artifact in the repository.
> 
> Thats the theory. But I'd like to hear anybody who really used it,
> because most often, it's the small things that matter the most meaning
> that some small issues / missing features could have a drastic influence
> on the whole project workflow/ building process.

We use the nar plugin for building ordinary DLLs (used as extension for some
Windows app) as well as for JNI DLLs. Basically it works fine once you get
used to its quirks.

Main problem with the nar plugin is that it is nearly not supported - you
cannot ask questions, you have to find out anything yourself. There's no
mailing list and the forum is full of questions without a lot answers and
patches pile in their JIRA.

Jason once stated that Mark wanted to move the nar-plugin directly into
Maven land, but that's been posted already again some months ago. Mark
recently stated here on the list that he's currently busy with other
things.

- Jörg


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


Re: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Rémy Sanlaville <re...@gmail.com>.
Hi Jan,

Rémy,
>
> Do you also use it for Perl? Perl also uses a lot of libraries (.pm
> files e.g.)  and even perl make scripts sometimes. I couldn't find any
> maven plugin supporting perl projects. Do you have any idea if this is
> possible?
>
>
No we haven't try it and I am not aware about perl plugin.
As I don't really know perl I can't say if it possible/difficult or not to
create a perl plugin.
Sorry.

Rémy

AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jan Wedel <Ja...@ettex.de>.
Hi,

I recently did not receive any Mails from the list..so I'm answering 
now.

Vincent, 

this sounds very interesting! Yesterday, I tried hours to compile the 
example program bundled with the nar plugin and got strange errors about 
not having specified any include files...but the project does not 
contain include files at all because its a hello world... I was really 
frustrated and almost gave up until I read your post. Could you probably 
provide your version with the applied patches or at least the patches 
themselves? This would be really helpful to get it working. I also need 
to apply some patches for enabling embedded support.

Rémy,

Do you also use it for Perl? Perl also uses a lot of libraries (.pm 
files e.g.)  and even perl make scripts sometimes. I couldn't find any 
maven plugin supporting perl projects. Do you have any idea if this is 
possible?

Jan

-----Ursprüngliche Nachricht-----
Von: Jan Wedel 
Gesendet: Dienstag, 11. August 2009 16:28
An: users@maven.apache.org
Betreff: AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

As stated before by John,

There is a PHP plugin. Moreover, I found a .NET plugin. For C, Fortran 
and C++, the NAR plugin can be used. The maven-native-plugin indeed 
seems to be discontinued and on the maven nar website, they say they 
created their plugin because the maven native plugin wasn't flexible 
enough.

As far as I can say, their procedure sound very interesting. They bundle 

Header and object files and POM in a zip file called .nar which can be 
used as any Java artifact in the repository.

Thats the theory. But I'd like to hear anybody who really used it, 
because most often, it's the small things that matter the most meaning 
that some small issues / missing features could have a drastic influence 

on the whole project workflow/ building process.


-----Ursprüngliche Nachricht-----
Von: Martin Gainty [mailto:mgainty@hotmail.com] 
Gesendet: Dienstag, 11. August 2009 15:37
An: users@maven.apache.org
Betreff: RE: AW: Re: AW: Re: Maven for Non-Java Projects


Since PHP,Python and even Perl (mod form or exe) are library or 
executable binaries
the only solution I can envision is to pass control to 
maven-antrun-plugin and have build.xml spawn some manner of make or c 
compiler for these modules

here is an example maven-antrun-plugin calling a build.xml with a 
specific target
http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

i would be interested in hearing other solutions 

*gruss*
Martin Gainty 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene 
Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede 
unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. 
Diese Nachricht dient lediglich dem Austausch von Informationen und 
entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten 
Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt 
uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas 
le destinataire prévu, nous te demandons avec bonté que pour satisfaire 
informez l'expéditeur. N'importe quelle diffusion non autorisée ou la 
copie de ceci est interdite. Ce message sert à l'information seulement 
et n'aura pas n'importe quel effet légalement obligatoire. Étant donné 
que les email peuvent facilement être sujets à la manipulation, nous ne 
pouvons accepter aucune responsabilité pour le contenu fourni.




> Date: Tue, 11 Aug 2009 13:34:02 +0200
> From: Jan.Wedel@ettex.de
> To: users@maven.apache.org
> Subject: AW: Re: AW: Re: Maven for Non-Java Projects
> 
> Thanks John! 
> 
> But our aim is not to use Maven at any cost. We are searching for a 
tool 
> that can be used on many platforms and compilers.
> 
> Sometime we have one project ported to different languages and 
sometimes 
> we have have a project that is composed of several sub-projects in 
> different languages.
> 
> So, we are searching for a tool that can be triggered to build such a 
> heterogeneous project. So, still the question is: Does Maven provide 
> enough flexibility to support such a development environment as 
> explained? Either by existing plug-in or by providing the necessary 
> framework and structures to allow us writing own plugins.
> 
> What I mean is, are there any limitation in maven that would prevent 
> writing and/or using native plugins while maintaining the terminology 
> and structure of artifacts, groups, dependencies, repositories etc. 
> together with C, Python and other languages.
> 
> Thanks,
> 
> Jan
> 
> -----Ursprüngliche Nachricht-----
> Von: John Dunlap [mailto:john.dunlap@exceter.com] 
> Gesendet: Dienstag, 11. August 2009 13:18
> An: Maven Users List
> Betreff: Re: AW: Re: Maven for Non-Java Projects
> 
> You could always try using something like the maven exec-maven-plugin 
to 
> 
> execute CMake (which supports generating project files for VS, XCode, 
> and GCC from a common text file on Mac, Windows, and Linux).
> http://www.cmake.org/
> 
> Jan Wedel wrote:
> > Thanks for your answers!
> >
> > Where do you see most of the problems in including native compilers? 

I 
> 
> > means, in general Maven already supports a highly abstract object 
> model 
> > that does not have much in common with Java. So why is it 
complicated 
> to 
> > integrate another compiler?
> >
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Brett Randall [mailto:javabrett@gmail.com] 
> > Gesendet: Dienstag, 11. August 2009 02:11
> > An: Maven Users List
> > Betreff: Re: Maven for Non-Java Projects
> >
> > On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> 
> > wrote:
> >
> >   
> >> We are currently using it for flex in addition to java, for flex 
the 
> >>     
> > builds
> >   
> >> work fine the only negative is the plugins that allow direct IDE
> >> integration
> >> are not as complete as they are for Java.
> >>
> >> Regarding C/C++ I have tried to use this in the past, I think I was 


> >>     
> > using
> >   
> >> the nar plugin but can't be sure.  There were a couple of 
> >>     
> > road-blocking
> >   
> >> bugs/missing-features that prevented us from using maven for these 
> >>     
> > types of
> >   
> >> projects.  If I recall correctly the issues were that it did not 
have
> >> support for the new universal OSX binaries and on Windows you 
> couldn't
> >> specify the compiler version.  I.e. it would use whatever MSVC 
> version 
> >>     
> > it
> >   
> >> found on the system, and we had to support multiple versions (this 
is
> >> probably true on other platforms as well).  You could probably 
modify 
> 
> >>     
> > the
> >   
> >> plugins when you find issues like these but I didn't go down that 
> >>     
> > path.
> >   
> >> (This was a couple+ years ago so if these are kept current they may 


> be
> >> fixed
> >> by now.)
> >>
> >> -Dave
> >>
> >> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> 
> wrote:
> >>
> >>     
> >>> Hi there!
> >>>
> >>> I already searched google for some help but it seems that it's not
> >>> really common to use Maven for non-Java projects.
> >>>
> >>> However, we plan to be platform and language-independent by 
> >>>       
> > supporting
> >   
> >>> e.g. embedded Java, C, C++ and Python. The question is if it is 
> >>>       
> > feasible
> >   
> >>> to use Maven for all projects?
> >>> I found the maven-native-plugin and maven-nar-plugin but I'm not 
> >>>       
> > really
> >   
> >>> sure if it supports everything that's needed. We are looking for a
> >>> server-based central repository maintaining different projects and
> >>> libraries in various languages.
> >>>
> >>> Can anybody who uses or used any of these or other plug-ins to 
> >>>       
> > support
> >   
> >>> non-Java projects please respond with some comments, hints, 
> >>>       
> > suggestions,
> >   
> >>> pro and cons etc. that might be helpful?
> >>>
> >>> Thanks a lot!
> >>>
> >>> Jan
> >>>
> >>>
> >>>       
> > 
---------------------------------------------------------------------
> >   
> >>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: users-help@maven.apache.org
> >>>
> >>>
> >>>       
> >
> > I haven't yet had much joy with Maven-plugins for building 
> > Windows-native
> > DLLs from C++ using the MSVC compiler, so if anyone would like to 
> > nominate
> > their favorite plugin there.  native-mave-plugin seems out-of date 
or 
> > not
> > maintained for latest MSVC compiler versions?
> >
> > Brett
> >
> >
> >
> > 
---------------------------------------------------------------------
> > 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
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 

_________________________________________________________________
Windows Live: Keep your life in sync.
http://windowslive.com/explore?ocid=PID23384::T:WLMTAGL:ON:WL:en-US:NF_BR_sync:082009



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


AW: RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jan Wedel <Ja...@ettex.de>.
As stated before by John,

There is a PHP plugin. Moreover, I found a .NET plugin. For C, Fortran 
and C++, the NAR plugin can be used. The maven-native-plugin indeed 
seems to be discontinued and on the maven nar website, they say they 
created their plugin because the maven native plugin wasn't flexible 
enough.

As far as I can say, their procedure sound very interesting. They bundle 
Header and object files and POM in a zip file called .nar which can be 
used as any Java artifact in the repository.

Thats the theory. But I'd like to hear anybody who really used it, 
because most often, it's the small things that matter the most meaning 
that some small issues / missing features could have a drastic influence 
on the whole project workflow/ building process.


-----Ursprüngliche Nachricht-----
Von: Martin Gainty [mailto:mgainty@hotmail.com] 
Gesendet: Dienstag, 11. August 2009 15:37
An: users@maven.apache.org
Betreff: RE: AW: Re: AW: Re: Maven for Non-Java Projects


Since PHP,Python and even Perl (mod form or exe) are library or 
executable binaries
the only solution I can envision is to pass control to 
maven-antrun-plugin and have build.xml spawn some manner of make or c 
compiler for these modules

here is an example maven-antrun-plugin calling a build.xml with a 
specific target
http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

i would be interested in hearing other solutions 

*gruss*
Martin Gainty 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene 
Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede 
unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. 
Diese Nachricht dient lediglich dem Austausch von Informationen und 
entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten 
Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt 
uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas 
le destinataire prévu, nous te demandons avec bonté que pour satisfaire 
informez l'expéditeur. N'importe quelle diffusion non autorisée ou la 
copie de ceci est interdite. Ce message sert à l'information seulement 
et n'aura pas n'importe quel effet légalement obligatoire. Étant donné 
que les email peuvent facilement être sujets à la manipulation, nous ne 
pouvons accepter aucune responsabilité pour le contenu fourni.




> Date: Tue, 11 Aug 2009 13:34:02 +0200
> From: Jan.Wedel@ettex.de
> To: users@maven.apache.org
> Subject: AW: Re: AW: Re: Maven for Non-Java Projects
> 
> Thanks John! 
> 
> But our aim is not to use Maven at any cost. We are searching for a 
tool 
> that can be used on many platforms and compilers.
> 
> Sometime we have one project ported to different languages and 
sometimes 
> we have have a project that is composed of several sub-projects in 
> different languages.
> 
> So, we are searching for a tool that can be triggered to build such a 
> heterogeneous project. So, still the question is: Does Maven provide 
> enough flexibility to support such a development environment as 
> explained? Either by existing plug-in or by providing the necessary 
> framework and structures to allow us writing own plugins.
> 
> What I mean is, are there any limitation in maven that would prevent 
> writing and/or using native plugins while maintaining the terminology 
> and structure of artifacts, groups, dependencies, repositories etc. 
> together with C, Python and other languages.
> 
> Thanks,
> 
> Jan
> 
> -----Ursprüngliche Nachricht-----
> Von: John Dunlap [mailto:john.dunlap@exceter.com] 
> Gesendet: Dienstag, 11. August 2009 13:18
> An: Maven Users List
> Betreff: Re: AW: Re: Maven for Non-Java Projects
> 
> You could always try using something like the maven exec-maven-plugin 
to 
> 
> execute CMake (which supports generating project files for VS, XCode, 
> and GCC from a common text file on Mac, Windows, and Linux).
> http://www.cmake.org/
> 
> Jan Wedel wrote:
> > Thanks for your answers!
> >
> > Where do you see most of the problems in including native compilers? 
I 
> 
> > means, in general Maven already supports a highly abstract object 
> model 
> > that does not have much in common with Java. So why is it 
complicated 
> to 
> > integrate another compiler?
> >
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Brett Randall [mailto:javabrett@gmail.com] 
> > Gesendet: Dienstag, 11. August 2009 02:11
> > An: Maven Users List
> > Betreff: Re: Maven for Non-Java Projects
> >
> > On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> 
> > wrote:
> >
> >   
> >> We are currently using it for flex in addition to java, for flex 
the 
> >>     
> > builds
> >   
> >> work fine the only negative is the plugins that allow direct IDE
> >> integration
> >> are not as complete as they are for Java.
> >>
> >> Regarding C/C++ I have tried to use this in the past, I think I was 

> >>     
> > using
> >   
> >> the nar plugin but can't be sure.  There were a couple of 
> >>     
> > road-blocking
> >   
> >> bugs/missing-features that prevented us from using maven for these 
> >>     
> > types of
> >   
> >> projects.  If I recall correctly the issues were that it did not 
have
> >> support for the new universal OSX binaries and on Windows you 
> couldn't
> >> specify the compiler version.  I.e. it would use whatever MSVC 
> version 
> >>     
> > it
> >   
> >> found on the system, and we had to support multiple versions (this 
is
> >> probably true on other platforms as well).  You could probably 
modify 
> 
> >>     
> > the
> >   
> >> plugins when you find issues like these but I didn't go down that 
> >>     
> > path.
> >   
> >> (This was a couple+ years ago so if these are kept current they may 

> be
> >> fixed
> >> by now.)
> >>
> >> -Dave
> >>
> >> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> 
> wrote:
> >>
> >>     
> >>> Hi there!
> >>>
> >>> I already searched google for some help but it seems that it's not
> >>> really common to use Maven for non-Java projects.
> >>>
> >>> However, we plan to be platform and language-independent by 
> >>>       
> > supporting
> >   
> >>> e.g. embedded Java, C, C++ and Python. The question is if it is 
> >>>       
> > feasible
> >   
> >>> to use Maven for all projects?
> >>> I found the maven-native-plugin and maven-nar-plugin but I'm not 
> >>>       
> > really
> >   
> >>> sure if it supports everything that's needed. We are looking for a
> >>> server-based central repository maintaining different projects and
> >>> libraries in various languages.
> >>>
> >>> Can anybody who uses or used any of these or other plug-ins to 
> >>>       
> > support
> >   
> >>> non-Java projects please respond with some comments, hints, 
> >>>       
> > suggestions,
> >   
> >>> pro and cons etc. that might be helpful?
> >>>
> >>> Thanks a lot!
> >>>
> >>> Jan
> >>>
> >>>
> >>>       
> > 
---------------------------------------------------------------------
> >   
> >>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: users-help@maven.apache.org
> >>>
> >>>
> >>>       
> >
> > I haven't yet had much joy with Maven-plugins for building 
> > Windows-native
> > DLLs from C++ using the MSVC compiler, so if anyone would like to 
> > nominate
> > their favorite plugin there.  native-mave-plugin seems out-of date 
or 
> > not
> > maintained for latest MSVC compiler versions?
> >
> > Brett
> >
> >
> >
> > 
---------------------------------------------------------------------
> > 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
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 

_________________________________________________________________
Windows Live: Keep your life in sync.
http://windowslive.com/explore?ocid=PID23384::T:WLMTAGL:ON:WL:en-US:NF_BR_sync:082009



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


RE: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Martin Gainty <mg...@hotmail.com>.
Since PHP,Python and even Perl (mod form or exe) are library or executable binaries
the only solution I can envision is to pass control to maven-antrun-plugin and have build.xml spawn some manner of make or c compiler for these modules

here is an example maven-antrun-plugin calling a build.xml with a specific target
http://maven.apache.org/plugins/maven-antrun-plugin/examples/classpaths.html

i would be interested in hearing other solutions 

*gruss*
Martin Gainty 
______________________________________________ 
Verzicht und Vertraulichkeitanmerkung/Note de déni et de confidentialité
 
Diese Nachricht ist vertraulich. Sollten Sie nicht der vorgesehene Empfaenger sein, so bitten wir hoeflich um eine Mitteilung. Jede unbefugte Weiterleitung oder Fertigung einer Kopie ist unzulaessig. Diese Nachricht dient lediglich dem Austausch von Informationen und entfaltet keine rechtliche Bindungswirkung. Aufgrund der leichten Manipulierbarkeit von E-Mails koennen wir keine Haftung fuer den Inhalt uebernehmen.
Ce message est confidentiel et peut être privilégié. Si vous n'êtes pas le destinataire prévu, nous te demandons avec bonté que pour satisfaire informez l'expéditeur. N'importe quelle diffusion non autorisée ou la copie de ceci est interdite. Ce message sert à l'information seulement et n'aura pas n'importe quel effet légalement obligatoire. Étant donné que les email peuvent facilement être sujets à la manipulation, nous ne pouvons accepter aucune responsabilité pour le contenu fourni.




> Date: Tue, 11 Aug 2009 13:34:02 +0200
> From: Jan.Wedel@ettex.de
> To: users@maven.apache.org
> Subject: AW: Re: AW: Re: Maven for Non-Java Projects
> 
> Thanks John! 
> 
> But our aim is not to use Maven at any cost. We are searching for a tool 
> that can be used on many platforms and compilers.
> 
> Sometime we have one project ported to different languages and sometimes 
> we have have a project that is composed of several sub-projects in 
> different languages.
> 
> So, we are searching for a tool that can be triggered to build such a 
> heterogeneous project. So, still the question is: Does Maven provide 
> enough flexibility to support such a development environment as 
> explained? Either by existing plug-in or by providing the necessary 
> framework and structures to allow us writing own plugins.
> 
> What I mean is, are there any limitation in maven that would prevent 
> writing and/or using native plugins while maintaining the terminology 
> and structure of artifacts, groups, dependencies, repositories etc. 
> together with C, Python and other languages.
> 
> Thanks,
> 
> Jan
> 
> -----Ursprüngliche Nachricht-----
> Von: John Dunlap [mailto:john.dunlap@exceter.com] 
> Gesendet: Dienstag, 11. August 2009 13:18
> An: Maven Users List
> Betreff: Re: AW: Re: Maven for Non-Java Projects
> 
> You could always try using something like the maven exec-maven-plugin to 
> 
> execute CMake (which supports generating project files for VS, XCode, 
> and GCC from a common text file on Mac, Windows, and Linux).
> http://www.cmake.org/
> 
> Jan Wedel wrote:
> > Thanks for your answers!
> >
> > Where do you see most of the problems in including native compilers? I 
> 
> > means, in general Maven already supports a highly abstract object 
> model 
> > that does not have much in common with Java. So why is it complicated 
> to 
> > integrate another compiler?
> >
> >
> > -----Ursprüngliche Nachricht-----
> > Von: Brett Randall [mailto:javabrett@gmail.com] 
> > Gesendet: Dienstag, 11. August 2009 02:11
> > An: Maven Users List
> > Betreff: Re: Maven for Non-Java Projects
> >
> > On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> 
> > wrote:
> >
> >   
> >> We are currently using it for flex in addition to java, for flex the 
> >>     
> > builds
> >   
> >> work fine the only negative is the plugins that allow direct IDE
> >> integration
> >> are not as complete as they are for Java.
> >>
> >> Regarding C/C++ I have tried to use this in the past, I think I was 
> >>     
> > using
> >   
> >> the nar plugin but can't be sure.  There were a couple of 
> >>     
> > road-blocking
> >   
> >> bugs/missing-features that prevented us from using maven for these 
> >>     
> > types of
> >   
> >> projects.  If I recall correctly the issues were that it did not have
> >> support for the new universal OSX binaries and on Windows you 
> couldn't
> >> specify the compiler version.  I.e. it would use whatever MSVC 
> version 
> >>     
> > it
> >   
> >> found on the system, and we had to support multiple versions (this is
> >> probably true on other platforms as well).  You could probably modify 
> 
> >>     
> > the
> >   
> >> plugins when you find issues like these but I didn't go down that 
> >>     
> > path.
> >   
> >> (This was a couple+ years ago so if these are kept current they may 
> be
> >> fixed
> >> by now.)
> >>
> >> -Dave
> >>
> >> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> 
> wrote:
> >>
> >>     
> >>> Hi there!
> >>>
> >>> I already searched google for some help but it seems that it's not
> >>> really common to use Maven for non-Java projects.
> >>>
> >>> However, we plan to be platform and language-independent by 
> >>>       
> > supporting
> >   
> >>> e.g. embedded Java, C, C++ and Python. The question is if it is 
> >>>       
> > feasible
> >   
> >>> to use Maven for all projects?
> >>> I found the maven-native-plugin and maven-nar-plugin but I'm not 
> >>>       
> > really
> >   
> >>> sure if it supports everything that's needed. We are looking for a
> >>> server-based central repository maintaining different projects and
> >>> libraries in various languages.
> >>>
> >>> Can anybody who uses or used any of these or other plug-ins to 
> >>>       
> > support
> >   
> >>> non-Java projects please respond with some comments, hints, 
> >>>       
> > suggestions,
> >   
> >>> pro and cons etc. that might be helpful?
> >>>
> >>> Thanks a lot!
> >>>
> >>> Jan
> >>>
> >>>
> >>>       
> > ---------------------------------------------------------------------
> >   
> >>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> >>> For additional commands, e-mail: users-help@maven.apache.org
> >>>
> >>>
> >>>       
> >
> > I haven't yet had much joy with Maven-plugins for building 
> > Windows-native
> > DLLs from C++ using the MSVC compiler, so if anyone would like to 
> > nominate
> > their favorite plugin there.  native-mave-plugin seems out-of date or 
> > not
> > maintained for latest MSVC compiler versions?
> >
> > Brett
> >
> >
> >
> > ---------------------------------------------------------------------
> > 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
> 
> 
> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
> 

_________________________________________________________________
Windows Live™: Keep your life in sync.
http://windowslive.com/explore?ocid=PID23384::T:WLMTAGL:ON:WL:en-US:NF_BR_sync:082009

Re: AW: Re: AW: Re: Maven for Non-Java Projects

Posted by jo...@exceter.com.
As nearly everything in Maven is a plugin I would expect that the technical
answer is yes but I'm guessing that you'd have to write a lot of plugins
for each additional language that you wanted to include in a multi module
project scenario.
http://maven.apache.org/guides/introduction/introduction-to-plugins.html

For example, Maven has been adapted to work with PHP,
http://www.php-maven.org/

On Tue, 11 Aug 2009 13:34:02 +0200, "Jan Wedel" <Ja...@ettex.de> wrote:
> Thanks John! 
> 
> But our aim is not to use Maven at any cost. We are searching for a tool 
> that can be used on many platforms and compilers.
> 
> Sometime we have one project ported to different languages and sometimes 
> we have have a project that is composed of several sub-projects in 
> different languages.
> 
> So, we are searching for a tool that can be triggered to build such a 
> heterogeneous project. So, still the question is: Does Maven provide 
> enough flexibility to support such a development environment as 
> explained? Either by existing plug-in or by providing the necessary 
> framework and structures to allow us writing own plugins.
> 
> What I mean is, are there any limitation in maven that would prevent 
> writing and/or using native plugins while maintaining the terminology 
> and structure of artifacts, groups, dependencies, repositories etc. 
> together with C, Python and other languages.
> 
> Thanks,
> 
> Jan
> 
> -----Ursprüngliche Nachricht-----
> Von: John Dunlap [mailto:john.dunlap@exceter.com] 
> Gesendet: Dienstag, 11. August 2009 13:18
> An: Maven Users List
> Betreff: Re: AW: Re: Maven for Non-Java Projects
> 
> You could always try using something like the maven exec-maven-plugin to 
> 
> execute CMake (which supports generating project files for VS, XCode, 
> and GCC from a common text file on Mac, Windows, and Linux).
> http://www.cmake.org/
> 
> Jan Wedel wrote:
>> Thanks for your answers!
>>
>> Where do you see most of the problems in including native compilers? I 
> 
>> means, in general Maven already supports a highly abstract object 
> model 
>> that does not have much in common with Java. So why is it complicated 
> to 
>> integrate another compiler?
>>
>>
>> -----Ursprüngliche Nachricht-----
>> Von: Brett Randall [mailto:javabrett@gmail.com] 
>> Gesendet: Dienstag, 11. August 2009 02:11
>> An: Maven Users List
>> Betreff: Re: Maven for Non-Java Projects
>>
>> On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> 
>> wrote:
>>
>>   
>>> We are currently using it for flex in addition to java, for flex the 
>>>     
>> builds
>>   
>>> work fine the only negative is the plugins that allow direct IDE
>>> integration
>>> are not as complete as they are for Java.
>>>
>>> Regarding C/C++ I have tried to use this in the past, I think I was 
>>>     
>> using
>>   
>>> the nar plugin but can't be sure.  There were a couple of 
>>>     
>> road-blocking
>>   
>>> bugs/missing-features that prevented us from using maven for these 
>>>     
>> types of
>>   
>>> projects.  If I recall correctly the issues were that it did not have
>>> support for the new universal OSX binaries and on Windows you 
> couldn't
>>> specify the compiler version.  I.e. it would use whatever MSVC 
> version 
>>>     
>> it
>>   
>>> found on the system, and we had to support multiple versions (this is
>>> probably true on other platforms as well).  You could probably modify 
> 
>>>     
>> the
>>   
>>> plugins when you find issues like these but I didn't go down that 
>>>     
>> path.
>>   
>>> (This was a couple+ years ago so if these are kept current they may 
> be
>>> fixed
>>> by now.)
>>>
>>> -Dave
>>>
>>> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> 
> wrote:
>>>
>>>     
>>>> Hi there!
>>>>
>>>> I already searched google for some help but it seems that it's not
>>>> really common to use Maven for non-Java projects.
>>>>
>>>> However, we plan to be platform and language-independent by 
>>>>       
>> supporting
>>   
>>>> e.g. embedded Java, C, C++ and Python. The question is if it is 
>>>>       
>> feasible
>>   
>>>> to use Maven for all projects?
>>>> I found the maven-native-plugin and maven-nar-plugin but I'm not 
>>>>       
>> really
>>   
>>>> sure if it supports everything that's needed. We are looking for a
>>>> server-based central repository maintaining different projects and
>>>> libraries in various languages.
>>>>
>>>> Can anybody who uses or used any of these or other plug-ins to 
>>>>       
>> support
>>   
>>>> non-Java projects please respond with some comments, hints, 
>>>>       
>> suggestions,
>>   
>>>> pro and cons etc. that might be helpful?
>>>>
>>>> Thanks a lot!
>>>>
>>>> Jan
>>>>
>>>>
>>>>       
>> ---------------------------------------------------------------------
>>   
>>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>>> For additional commands, e-mail: users-help@maven.apache.org
>>>>
>>>>
>>>>       
>>
>> I haven't yet had much joy with Maven-plugins for building 
>> Windows-native
>> DLLs from C++ using the MSVC compiler, so if anyone would like to 
>> nominate
>> their favorite plugin there.  native-mave-plugin seems out-of date or 
>> not
>> maintained for latest MSVC compiler versions?
>>
>> Brett
>>
>>
>>
>> ---------------------------------------------------------------------
>> 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
> 
> 
> 
> 
> ---------------------------------------------------------------------
> 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


AW: Re: AW: Re: Maven for Non-Java Projects

Posted by Jan Wedel <Ja...@ettex.de>.
Thanks John! 

But our aim is not to use Maven at any cost. We are searching for a tool 
that can be used on many platforms and compilers.

Sometime we have one project ported to different languages and sometimes 
we have have a project that is composed of several sub-projects in 
different languages.

So, we are searching for a tool that can be triggered to build such a 
heterogeneous project. So, still the question is: Does Maven provide 
enough flexibility to support such a development environment as 
explained? Either by existing plug-in or by providing the necessary 
framework and structures to allow us writing own plugins.

What I mean is, are there any limitation in maven that would prevent 
writing and/or using native plugins while maintaining the terminology 
and structure of artifacts, groups, dependencies, repositories etc. 
together with C, Python and other languages.

Thanks,

Jan

-----Ursprüngliche Nachricht-----
Von: John Dunlap [mailto:john.dunlap@exceter.com] 
Gesendet: Dienstag, 11. August 2009 13:18
An: Maven Users List
Betreff: Re: AW: Re: Maven for Non-Java Projects

You could always try using something like the maven exec-maven-plugin to 

execute CMake (which supports generating project files for VS, XCode, 
and GCC from a common text file on Mac, Windows, and Linux).
http://www.cmake.org/

Jan Wedel wrote:
> Thanks for your answers!
>
> Where do you see most of the problems in including native compilers? I 

> means, in general Maven already supports a highly abstract object 
model 
> that does not have much in common with Java. So why is it complicated 
to 
> integrate another compiler?
>
>
> -----Ursprüngliche Nachricht-----
> Von: Brett Randall [mailto:javabrett@gmail.com] 
> Gesendet: Dienstag, 11. August 2009 02:11
> An: Maven Users List
> Betreff: Re: Maven for Non-Java Projects
>
> On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> 
> wrote:
>
>   
>> We are currently using it for flex in addition to java, for flex the 
>>     
> builds
>   
>> work fine the only negative is the plugins that allow direct IDE
>> integration
>> are not as complete as they are for Java.
>>
>> Regarding C/C++ I have tried to use this in the past, I think I was 
>>     
> using
>   
>> the nar plugin but can't be sure.  There were a couple of 
>>     
> road-blocking
>   
>> bugs/missing-features that prevented us from using maven for these 
>>     
> types of
>   
>> projects.  If I recall correctly the issues were that it did not have
>> support for the new universal OSX binaries and on Windows you 
couldn't
>> specify the compiler version.  I.e. it would use whatever MSVC 
version 
>>     
> it
>   
>> found on the system, and we had to support multiple versions (this is
>> probably true on other platforms as well).  You could probably modify 

>>     
> the
>   
>> plugins when you find issues like these but I didn't go down that 
>>     
> path.
>   
>> (This was a couple+ years ago so if these are kept current they may 
be
>> fixed
>> by now.)
>>
>> -Dave
>>
>> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> 
wrote:
>>
>>     
>>> Hi there!
>>>
>>> I already searched google for some help but it seems that it's not
>>> really common to use Maven for non-Java projects.
>>>
>>> However, we plan to be platform and language-independent by 
>>>       
> supporting
>   
>>> e.g. embedded Java, C, C++ and Python. The question is if it is 
>>>       
> feasible
>   
>>> to use Maven for all projects?
>>> I found the maven-native-plugin and maven-nar-plugin but I'm not 
>>>       
> really
>   
>>> sure if it supports everything that's needed. We are looking for a
>>> server-based central repository maintaining different projects and
>>> libraries in various languages.
>>>
>>> Can anybody who uses or used any of these or other plug-ins to 
>>>       
> support
>   
>>> non-Java projects please respond with some comments, hints, 
>>>       
> suggestions,
>   
>>> pro and cons etc. that might be helpful?
>>>
>>> Thanks a lot!
>>>
>>> Jan
>>>
>>>
>>>       
> ---------------------------------------------------------------------
>   
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>>
>>>       
>
> I haven't yet had much joy with Maven-plugins for building 
> Windows-native
> DLLs from C++ using the MSVC compiler, so if anyone would like to 
> nominate
> their favorite plugin there.  native-mave-plugin seems out-of date or 
> not
> maintained for latest MSVC compiler versions?
>
> Brett
>
>
>
> ---------------------------------------------------------------------
> 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




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


Re: AW: Re: Maven for Non-Java Projects

Posted by John Dunlap <jo...@exceter.com>.
You could always try using something like the maven exec-maven-plugin to 
execute CMake (which supports generating project files for VS, XCode, 
and GCC from a common text file on Mac, Windows, and Linux).
http://www.cmake.org/

Jan Wedel wrote:
> Thanks for your answers!
>
> Where do you see most of the problems in including native compilers? I 
> means, in general Maven already supports a highly abstract object model 
> that does not have much in common with Java. So why is it complicated to 
> integrate another compiler?
>
>
> -----Ursprüngliche Nachricht-----
> Von: Brett Randall [mailto:javabrett@gmail.com] 
> Gesendet: Dienstag, 11. August 2009 02:11
> An: Maven Users List
> Betreff: Re: Maven for Non-Java Projects
>
> On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> 
> wrote:
>
>   
>> We are currently using it for flex in addition to java, for flex the 
>>     
> builds
>   
>> work fine the only negative is the plugins that allow direct IDE
>> integration
>> are not as complete as they are for Java.
>>
>> Regarding C/C++ I have tried to use this in the past, I think I was 
>>     
> using
>   
>> the nar plugin but can't be sure.  There were a couple of 
>>     
> road-blocking
>   
>> bugs/missing-features that prevented us from using maven for these 
>>     
> types of
>   
>> projects.  If I recall correctly the issues were that it did not have
>> support for the new universal OSX binaries and on Windows you couldn't
>> specify the compiler version.  I.e. it would use whatever MSVC version 
>>     
> it
>   
>> found on the system, and we had to support multiple versions (this is
>> probably true on other platforms as well).  You could probably modify 
>>     
> the
>   
>> plugins when you find issues like these but I didn't go down that 
>>     
> path.
>   
>> (This was a couple+ years ago so if these are kept current they may be
>> fixed
>> by now.)
>>
>> -Dave
>>
>> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> wrote:
>>
>>     
>>> Hi there!
>>>
>>> I already searched google for some help but it seems that it's not
>>> really common to use Maven for non-Java projects.
>>>
>>> However, we plan to be platform and language-independent by 
>>>       
> supporting
>   
>>> e.g. embedded Java, C, C++ and Python. The question is if it is 
>>>       
> feasible
>   
>>> to use Maven for all projects?
>>> I found the maven-native-plugin and maven-nar-plugin but I'm not 
>>>       
> really
>   
>>> sure if it supports everything that's needed. We are looking for a
>>> server-based central repository maintaining different projects and
>>> libraries in various languages.
>>>
>>> Can anybody who uses or used any of these or other plug-ins to 
>>>       
> support
>   
>>> non-Java projects please respond with some comments, hints, 
>>>       
> suggestions,
>   
>>> pro and cons etc. that might be helpful?
>>>
>>> Thanks a lot!
>>>
>>> Jan
>>>
>>>
>>>       
> ---------------------------------------------------------------------
>   
>>> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
>>> For additional commands, e-mail: users-help@maven.apache.org
>>>
>>>
>>>       
>
> I haven't yet had much joy with Maven-plugins for building 
> Windows-native
> DLLs from C++ using the MSVC compiler, so if anyone would like to 
> nominate
> their favorite plugin there.  native-mave-plugin seems out-of date or 
> not
> maintained for latest MSVC compiler versions?
>
> Brett
>
>
>
> ---------------------------------------------------------------------
> 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


AW: Re: Maven for Non-Java Projects

Posted by Jan Wedel <Ja...@ettex.de>.
Thanks for your answers!

Where do you see most of the problems in including native compilers? I 
means, in general Maven already supports a highly abstract object model 
that does not have much in common with Java. So why is it complicated to 
integrate another compiler?


-----Ursprüngliche Nachricht-----
Von: Brett Randall [mailto:javabrett@gmail.com] 
Gesendet: Dienstag, 11. August 2009 02:11
An: Maven Users List
Betreff: Re: Maven for Non-Java Projects

On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> 
wrote:

> We are currently using it for flex in addition to java, for flex the 
builds
> work fine the only negative is the plugins that allow direct IDE
> integration
> are not as complete as they are for Java.
>
> Regarding C/C++ I have tried to use this in the past, I think I was 
using
> the nar plugin but can't be sure.  There were a couple of 
road-blocking
> bugs/missing-features that prevented us from using maven for these 
types of
> projects.  If I recall correctly the issues were that it did not have
> support for the new universal OSX binaries and on Windows you couldn't
> specify the compiler version.  I.e. it would use whatever MSVC version 
it
> found on the system, and we had to support multiple versions (this is
> probably true on other platforms as well).  You could probably modify 
the
> plugins when you find issues like these but I didn't go down that 
path.
> (This was a couple+ years ago so if these are kept current they may be
> fixed
> by now.)
>
> -Dave
>
> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> wrote:
>
> > Hi there!
> >
> > I already searched google for some help but it seems that it's not
> > really common to use Maven for non-Java projects.
> >
> > However, we plan to be platform and language-independent by 
supporting
> > e.g. embedded Java, C, C++ and Python. The question is if it is 
feasible
> > to use Maven for all projects?
> > I found the maven-native-plugin and maven-nar-plugin but I'm not 
really
> > sure if it supports everything that's needed. We are looking for a
> > server-based central repository maintaining different projects and
> > libraries in various languages.
> >
> > Can anybody who uses or used any of these or other plug-ins to 
support
> > non-Java projects please respond with some comments, hints, 
suggestions,
> > pro and cons etc. that might be helpful?
> >
> > Thanks a lot!
> >
> > Jan
> >
> > 
---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>

I haven't yet had much joy with Maven-plugins for building 
Windows-native
DLLs from C++ using the MSVC compiler, so if anyone would like to 
nominate
their favorite plugin there.  native-mave-plugin seems out-of date or 
not
maintained for latest MSVC compiler versions?

Brett



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


Re: Maven for Non-Java Projects

Posted by Brett Randall <ja...@gmail.com>.
On Mon, Aug 10, 2009 at 10:50 PM, David Hoffer <dh...@gmail.com> wrote:

> We are currently using it for flex in addition to java, for flex the builds
> work fine the only negative is the plugins that allow direct IDE
> integration
> are not as complete as they are for Java.
>
> Regarding C/C++ I have tried to use this in the past, I think I was using
> the nar plugin but can't be sure.  There were a couple of road-blocking
> bugs/missing-features that prevented us from using maven for these types of
> projects.  If I recall correctly the issues were that it did not have
> support for the new universal OSX binaries and on Windows you couldn't
> specify the compiler version.  I.e. it would use whatever MSVC version it
> found on the system, and we had to support multiple versions (this is
> probably true on other platforms as well).  You could probably modify the
> plugins when you find issues like these but I didn't go down that path.
> (This was a couple+ years ago so if these are kept current they may be
> fixed
> by now.)
>
> -Dave
>
> On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> wrote:
>
> > Hi there!
> >
> > I already searched google for some help but it seems that it's not
> > really common to use Maven for non-Java projects.
> >
> > However, we plan to be platform and language-independent by supporting
> > e.g. embedded Java, C, C++ and Python. The question is if it is feasible
> > to use Maven for all projects?
> > I found the maven-native-plugin and maven-nar-plugin but I'm not really
> > sure if it supports everything that's needed. We are looking for a
> > server-based central repository maintaining different projects and
> > libraries in various languages.
> >
> > Can anybody who uses or used any of these or other plug-ins to support
> > non-Java projects please respond with some comments, hints, suggestions,
> > pro and cons etc. that might be helpful?
> >
> > Thanks a lot!
> >
> > Jan
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> > For additional commands, e-mail: users-help@maven.apache.org
> >
> >
>

I haven't yet had much joy with Maven-plugins for building Windows-native
DLLs from C++ using the MSVC compiler, so if anyone would like to nominate
their favorite plugin there.  native-mave-plugin seems out-of date or not
maintained for latest MSVC compiler versions?

Brett

Re: Maven for Non-Java Projects

Posted by David Hoffer <dh...@gmail.com>.
We are currently using it for flex in addition to java, for flex the builds
work fine the only negative is the plugins that allow direct IDE integration
are not as complete as they are for Java.

Regarding C/C++ I have tried to use this in the past, I think I was using
the nar plugin but can't be sure.  There were a couple of road-blocking
bugs/missing-features that prevented us from using maven for these types of
projects.  If I recall correctly the issues were that it did not have
support for the new universal OSX binaries and on Windows you couldn't
specify the compiler version.  I.e. it would use whatever MSVC version it
found on the system, and we had to support multiple versions (this is
probably true on other platforms as well).  You could probably modify the
plugins when you find issues like these but I didn't go down that path.
(This was a couple+ years ago so if these are kept current they may be fixed
by now.)

-Dave

On Mon, Aug 10, 2009 at 5:58 AM, Jan Wedel <Ja...@ettex.de> wrote:

> Hi there!
>
> I already searched google for some help but it seems that it's not
> really common to use Maven for non-Java projects.
>
> However, we plan to be platform and language-independent by supporting
> e.g. embedded Java, C, C++ and Python. The question is if it is feasible
> to use Maven for all projects?
> I found the maven-native-plugin and maven-nar-plugin but I'm not really
> sure if it supports everything that's needed. We are looking for a
> server-based central repository maintaining different projects and
> libraries in various languages.
>
> Can anybody who uses or used any of these or other plug-ins to support
> non-Java projects please respond with some comments, hints, suggestions,
> pro and cons etc. that might be helpful?
>
> Thanks a lot!
>
> Jan
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@maven.apache.org
> For additional commands, e-mail: users-help@maven.apache.org
>
>

Re: Maven for Non-Java Projects

Posted by Jörg Schaible <jo...@gmx.de>.
Hi Mark,

Donszelmann Mark wrote:

> Hi Vincent
> 
> the JIRA has moved too.
> 
> The maven-nar-plugin home page is (for now) at:
> 
> http://duns.github.com/maven-nar-plugin/
> 
> the issue page is at:
> 
> https://issues.sonatype.org/browse/NAR

these are really good news ...

- Jörg


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


Re: Maven for Non-Java Projects

Posted by Donszelmann Mark <ma...@gmail.com>.
Hi Vincent

the JIRA has moved too.

The maven-nar-plugin home page is (for now) at:

http://duns.github.com/maven-nar-plugin/

the issue page is at:

https://issues.sonatype.org/browse/NAR

Regards
Mark


On Oct 15, 2009, at 11:01 AM, Vincent Hardion wrote:

> I see you move to git ... Good News.
>
> Since august, I fixed some other problems and features.
> I'll try to fill JIRA with the corresponding patch.
>
> Tell me if you need some help.
>
> Best regards,
>
> Vincent
>
> Le 13 oct. 2009 à 14:09, Donszelmann Mark a écrit :
>
>> Hi
>>
>> I am working on the maven-nar-plugin (follow up of my freehep-nar- 
>> plugin).
>>
>> Moving things as we speak and reorganizing  where I left off 2  
>> years ago.
>>
>> End of this week, or beginning next I will publish some pointers.  
>> Of course you
>> could try to google them now if you want...
>>
>> Regards
>> Mark Donszelmann
>>
>>
>> On Oct 13, 2009, at 2:01 PM, Vincent Hardion wrote:
>>
>>> Hi,
>>>
>>> Sorry to wake up this thread.
>>>
>>> Did someone try the patch of freehep-nar plugin I sent ?
>>>
>>> Best regards,
>>>
>>> Vincent
>>>
>>> Le 10 août 2009 à 13:58, Jan Wedel a écrit :
>>>
>>>> Hi there!
>>>>
>>>> I already searched google for some help but it seems that it's not
>>>> really common to use Maven for non-Java projects.
>>>>
>>>> However, we plan to be platform and language-independent by  
>>>> supporting
>>>> e.g. embedded Java, C, C++ and Python. The question is if it is  
>>>> feasible
>>>> to use Maven for all projects?
>>>> I found the maven-native-plugin and maven-nar-plugin but I'm not  
>>>> really
>>>> sure if it supports everything that's needed. We are looking for a
>>>> server-based central repository maintaining different projects and
>>>> libraries in various languages.
>>>>
>>>> Can anybody who uses or used any of these or other plug-ins to  
>>>> support
>>>> non-Java projects please respond with some comments, hints,  
>>>> suggestions,
>>>> pro and cons etc. that might be helpful?
>>>>
>>>> Thanks a lot!
>>>>
>>>> Jan
>>>>
>>>> ---------------------------------------------------------------------
>>>> 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
>>>
>>
>>
>> ---------------------------------------------------------------------
>> 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
>


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


Re: Maven for Non-Java Projects

Posted by Vincent Hardion <vi...@gmail.com>.
I see you move to git ... Good News.

Since august, I fixed some other problems and features.
I'll try to fill JIRA with the corresponding patch.

Tell me if you need some help.

Best regards,

Vincent

Le 13 oct. 2009 à 14:09, Donszelmann Mark a écrit :

> Hi
>
> I am working on the maven-nar-plugin (follow up of my freehep-nar- 
> plugin).
>
> Moving things as we speak and reorganizing  where I left off 2 years  
> ago.
>
> End of this week, or beginning next I will publish some pointers. Of  
> course you
> could try to google them now if you want...
>
> Regards
> Mark Donszelmann
>
>
> On Oct 13, 2009, at 2:01 PM, Vincent Hardion wrote:
>
>> Hi,
>>
>> Sorry to wake up this thread.
>>
>> Did someone try the patch of freehep-nar plugin I sent ?
>>
>> Best regards,
>>
>> Vincent
>>
>> Le 10 août 2009 à 13:58, Jan Wedel a écrit :
>>
>>> Hi there!
>>>
>>> I already searched google for some help but it seems that it's not
>>> really common to use Maven for non-Java projects.
>>>
>>> However, we plan to be platform and language-independent by  
>>> supporting
>>> e.g. embedded Java, C, C++ and Python. The question is if it is  
>>> feasible
>>> to use Maven for all projects?
>>> I found the maven-native-plugin and maven-nar-plugin but I'm not  
>>> really
>>> sure if it supports everything that's needed. We are looking for a
>>> server-based central repository maintaining different projects and
>>> libraries in various languages.
>>>
>>> Can anybody who uses or used any of these or other plug-ins to  
>>> support
>>> non-Java projects please respond with some comments, hints,  
>>> suggestions,
>>> pro and cons etc. that might be helpful?
>>>
>>> Thanks a lot!
>>>
>>> Jan
>>>
>>> ---------------------------------------------------------------------
>>> 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
>>
>
>
> ---------------------------------------------------------------------
> 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: Maven for Non-Java Projects

Posted by Donszelmann Mark <ma...@gmail.com>.
Hi

I am working on the maven-nar-plugin (follow up of my freehep-nar- 
plugin).

Moving things as we speak and reorganizing  where I left off 2 years  
ago.

End of this week, or beginning next I will publish some pointers. Of  
course you
could try to google them now if you want...

Regards
Mark Donszelmann


On Oct 13, 2009, at 2:01 PM, Vincent Hardion wrote:

> Hi,
>
> Sorry to wake up this thread.
>
> Did someone try the patch of freehep-nar plugin I sent ?
>
> Best regards,
>
> Vincent
>
> Le 10 août 2009 à 13:58, Jan Wedel a écrit :
>
>> Hi there!
>>
>> I already searched google for some help but it seems that it's not
>> really common to use Maven for non-Java projects.
>>
>> However, we plan to be platform and language-independent by  
>> supporting
>> e.g. embedded Java, C, C++ and Python. The question is if it is  
>> feasible
>> to use Maven for all projects?
>> I found the maven-native-plugin and maven-nar-plugin but I'm not  
>> really
>> sure if it supports everything that's needed. We are looking for a
>> server-based central repository maintaining different projects and
>> libraries in various languages.
>>
>> Can anybody who uses or used any of these or other plug-ins to  
>> support
>> non-Java projects please respond with some comments, hints,  
>> suggestions,
>> pro and cons etc. that might be helpful?
>>
>> Thanks a lot!
>>
>> Jan
>>
>> ---------------------------------------------------------------------
>> 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
>


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


Re: Maven for Non-Java Projects

Posted by Vincent Hardion <vi...@gmail.com>.
Hi,

Sorry to wake up this thread.

Did someone try the patch of freehep-nar plugin I sent ?

Best regards,

Vincent

Le 10 août 2009 à 13:58, Jan Wedel a écrit :

> Hi there!
>
> I already searched google for some help but it seems that it's not
> really common to use Maven for non-Java projects.
>
> However, we plan to be platform and language-independent by supporting
> e.g. embedded Java, C, C++ and Python. The question is if it is  
> feasible
> to use Maven for all projects?
> I found the maven-native-plugin and maven-nar-plugin but I'm not  
> really
> sure if it supports everything that's needed. We are looking for a
> server-based central repository maintaining different projects and
> libraries in various languages.
>
> Can anybody who uses or used any of these or other plug-ins to support
> non-Java projects please respond with some comments, hints,  
> suggestions,
> pro and cons etc. that might be helpful?
>
> Thanks a lot!
>
> Jan
>
> ---------------------------------------------------------------------
> 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