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