Hello antlr-interest,
I just fetched the source of ANTLR from perforce and noticed that
building the assembly ("Uber jar") didn't succeed (the actual building
of ANTLR did), it failed with the following error message:
[ERROR] BUILD ERROR
[INFO] ------------------------------------------------------------------------
[INFO] Error reading assemblies: Error reading descriptor at:
antlrjar.xml: Unrecognised tag: 'useProjectArtifact' (position:
START_TAG seen ... causes silly things to happen.\n -->\n
<useProjectArtifact>... @21:25)
My system is Ubuntu 9.10, I use maven 2.2.1 and the version of the
assembly plugin is 2.2-beta-4. I know next to nothing about maven, but
a helpful maven developer, jdcasey, in the #maven IRC channel (at
irc.codehaus.org) helped me do fix this. I attached the new
antlrjar.xml.
Also, he made some suggestions concerning the current antlrjar.xml
which might be helpful, I'll paste some lines from the IRC log here
22:40:42 < jdcasey> johannes: maybe the POM doesn't specify a version
of the assembly plugin...it may be resolving the latest released
version, which leaves
you open to changes in behavior. POMs should pin
this down, I'd say.
22:41:13 < jdcasey> actually, it leaves you open to using the version
specified in the super-POM for the maven version you're using, in the
case of the
assembly plugin
[------------snip---------------]
22:44:59 < johannes> jdcasey: I'll write a message to a antlr mailing
list concerning this
22:45:30 < jdcasey> cool, that'd be great...fwiw, the old descriptor
probably wasn't doing quite what they wanted there...it would have
included the main
project artifact, and plainly wasn't meant to :)
22:46:15 < johannes> what does that mean, main project artifact? (I
know next to nothing about mvn ;-).)
22:47:30 < jdcasey> johannes: they were trying to say, "Process all of
the project dependencies by unpacking them into this new assembly"
22:47:41 < jdcasey> the main project artifact is the jar (or whatever)
produced by the current build
22:47:59 < jdcasey> so, they didn't want that jar included, only the
jars of dependencies, which were to be unpacked
22:48:38 < johannes> jdcasey: but the resulting .jar worked?
22:48:39 < jdcasey> then, it looks like they caught the classes
compiled for the current project by using a fileSet
pointed at target/classes (from what I saw, anyway)
22:48:48 < jdcasey> yeah, b/c of that last bit :)
22:48:51 < johannes> hmm.
22:49:06 < johannes> maybe I should attach that chatlog to the mail?
22:49:14 < jdcasey> it amounts to the same thing, usually...whether
you unpack the jar you just built, or gather the
classes you used to build the jar in the first place
22:49:22 < jdcasey> up to you, but fine by me
HTH
Greets, Johannes
--
You received this message because you are subscribed to the Google Groups
"il-antlr-interest" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/il-antlr-interest?hl=en.
List: http://www.antlr.org/mailman/listinfo/antlr-interest
Unsubscribe:
http://www.antlr.org/mailman/options/antlr-interest/your-email-address
<?xml version="1.0" encoding="UTF-8"?>
<!--
This file defines what goes in to ANTLR Uber jar, which includes
all of the classes we need to run an executable jar in standalone
mode, other than junit, which has a non Free BSD license and so
we are reluctanct to include it in the jar.
-->
<assembly>
<!--
This is the suffix that will be used to name the uber jar
once it is jared up.
-->
<id>completejar</id>
<!--
The only output format we need is the executable jar file
-->
<formats>
<format>jar</format>
</formats>
<!--
Make all jars unpack at the same level and don't include
any extranous directories.
-->
<includeBaseDirectory>false</includeBaseDirectory>
<!--
Which of the modules that the master pom builds do we
wish to include in the uber jar. We are including
dependencies, so we only need to name the Tool module
and the gunit module.
-->
<moduleSets>
<moduleSet>
<includes>
<include>org.antlr:antlr</include>
</includes>
<!--
Of the binaries, such as the depencies that the
above modules need, which do we want and which do we not.
Currently we want all the dependencies in the Tool jar.
-->
<binaries>
<!-- CHANGES BELOW THIS LINE -->
<dependencySets>
<dependencySet>
<!--
Exclude the antlr-master pom from the jar - we don't need it
and it causes silly things to happen.
-->
<useProjectArtifact>false</useProjectArtifact>
<!--
Unpack the binary dependencies so we have a nice
uber jar that can run with java -jar and need not have
CLASSPATH configured and so on.
-->
<unpack>true</unpack>
</dependencySet>
</dependencySets>
<!-- CHANGES ABOVE THIS LINE -->
</binaries>
</moduleSet>
<moduleSet>
<includes>
<include>org.antlr:gunit</include>
</includes>
<!--
We do not want any of the dependencies that gunit has as they
are inlcuded with the tool. In particular we want to exclude
the junit dependency.
-->
<binaries>
<includeDependencies>false</includeDependencies>
</binaries>
</moduleSet>
</moduleSets>
<!--
What do we want to include in the jar from each project
-->
<fileSets>
<fileSet>
<!--
We need the output classes and resources etc.
-->
<directory>${project.build.outputDirectory}</directory>
</fileSet>
</fileSets>
</assembly>