I'm trying to adapt the examples given at
https://maven.apache.org/plugins/maven-assembly-plugin to work with my
multi-module project.
Source was mostly easy -- I copied the <assembly/> into a file, tweaked
its excludes (still wish it picked up the .gitinclude automagically),
and it worked. I'd still like to change which directory the resulting
archive files were written to, but that's a nitpick; maybe I can copy
'em to the "ant simulation" build/ directory afterward.
But binary is giving me a bit more trouble. This is working for others,
so I presume it's another case of my just not understanding the idiom
well enough.
All I did was add one more <descriptor/> to reference
src/assembly/bin.xml, and dropped there a copy of the <assembly>
taken from the page, modified to output to tar.gz and zip. I changed the
<include>s to reference my artifacts, and ran mvn package again.
Maven objects to my first child module:
> [ERROR] Failed to execute goal
org.apache.maven.plugins:maven-assembly-plugin:3.6.0:single
(make-assembly) on project xalan-project: Failed to create assembly:
Artifact: xalan:serializer:jar:2.7.3 (included by module) does not have
an artifact with a file. Please ensure the package phase is run before
the assembly is generated. -> [Help 1]
This confuses me. There is indeed a file there,
serializer/target/serializer-2.7.3.jar, which xalan:xalan seems to
successfully use as the artifact for further compilation. Why isn't
maven-assembly-plugin finding and using it?
If I take out the <includes/> section entirely (trying to rely on
defaults), I get the same error message.
Does a <binaries/> assembly need to be put on a later phase? Or a
different execution?
Any advice would bemore than welcome...!
In my pom.xml, last plugin before </plugins></build>:
...
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>3.6.0</version>
<inherited>false</inherited>
<configuration>
<descriptors>
<descriptor>src/assembly/src.xml</descriptor>
<descriptor>src/assembly/bin.xml</descriptor>
</descriptors>
</configuration>
<executions>
<execution>
<id>make-assembly</id> <!-- this is used for inheritance
merges -->
<phase>package</phase> <!-- bind to the packaging phase -->
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
...
And my bin.xml:
<!-- Maven assembly plugin configuration for executable packaging -->
<assembly xmlns="http://maven.apache.org/ASSEMBLY/2.2.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/ASSEMBLY/2.2.0
http://maven.apache.org/xsd/assembly-2.2.0.xsd">
<id>bin</id>
<formats>
<format>tar.gz</format>
<format>zip</format>
</formats>
<includeBaseDirectory>true</includeBaseDirectory>
<moduleSets>
<moduleSet>
<!-- Enable access to all projects in the current multimodule
build! -->
<useAllReactorProjects>true</useAllReactorProjects>
<!-- Now, select which projects to include in this module-set. -->
<!-- <includes> -->
<!-- <include>xalan:serializer</include> -->
<!-- <include>xalan:xalan</include> -->
<!-- <include>xalan:samples</include> -->
<!-- <include>xalan:xalan2jtaglet</include> -->
<!-- <include>xalan:xalan-project</include> -->
<!-- </includes> -->
<binaries>
<outputDirectory>modules/maven-assembly-plugin</outputDirectory>
<unpack>false</unpack>
</binaries>
</moduleSet>
</moduleSets>
</assembly>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscr...@maven.apache.org
For additional commands, e-mail: users-h...@maven.apache.org