Self-inflicted wounds again.
Had generation of the multi-module distribution binary zipfile working yesterday. Came back today to find I had apparently stepped on it before pushing. Sigh. OK, I should be able to reproduce this, right? Unfortunately, no. I'm missing something obvious again. In context, currently broken as checked in: https://github.com/apache/xalan-java/tree/xalan-java-mvn-refactored Current error message is [ERROR] Failed to execute goal org.apache.maven.plugins:maven-assembly-plugin:2.2-beta-5:single (distro-assembly) on project distribution: Error reading assemblies: Error reading descriptor at: src/assembly/bin.xml: Unrecognised tag: 'useAllReactorProjects' (position: START_TAG seen ...\n ... @15:30) -> [Help 1] The bin.xml file mentioned currently contains something that is based directly off the multi-module assembly instructions, just changing which modules are included. Or at least that's the intent. 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";> bin zip tar-gz false true xalan:serializer xalan:xalan xalan:samples modules/maven-assembly-plugin false ../target/site docs ../samples target/** src/site/** -- And the POM invoking this is likewise based pretty directly on the example: http://maven.apache.org/POM/4.0.0"; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"; xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd";> 4.0.0 xalan xalan-project 2.7.3 distribution pom distribution xalan serializer 2.7.3 xalan xalan 2.7.3 xalan samples 2.7.3 maven-assembly-plugin distro-assembly package single src/assembly/bin.xml -- I'm undoubtedly looking right past my error. Which foot am I shooting off this time? - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: maven-assembly-plugin, bin example is giving me trouble
Duh. Just noticed that the FAQ explicitly mentions creating a child module just to achieve this sequencing in multi-module projects. Mea culpa, mea maxima culpa... I'd have hoped something could be done with phase and target, but if not, not. On 11/11/2023 11:44 AM, Joseph Kessselman wrote: Sorry: https://github.com/apache/xalan-java/tree/xalan-java-mvn-refactored (which currently has the binary assembly commented out). Dependency order... Well, I'm currently running the assembly at the top level, which would presumably mean it has to run after packaging of the contained modules. I suppose I could try moving it down to the module at the farthest end of the current dependency chain, or even into a new module which exists just to depend on everything else, but that feels like I'm solving the wrong problem; "give me an assembly for the whole project" is conceptually a top-level operation and I'd expect to invoke it from the root module. On 11/10/2023 10:54 PM, Alexander Kriegisch wrote: Tried making my top-level module dependent on all the others Don't! That does not make any logical sense. Checked in on xalan-java branch xalan-java-mvn-refactored Please always provide a link. I have no idea where to find your project. To you, that might be obvious. to others, it is not. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: Can the jar plugin respect .gitignore?
On 11/11/2023 11:44 AM, Greg Chabala wrote: Use the sourceReleaseAssemblyDescriptor of maven-assembly-plugin: https://maven.apache.org/apache-resource-bundles/source-release/ Thanks; hadn't seen that one. Definitely a fan of not reinventing wheels. Can that be configured to write the archives to a specific directory? I've been trying to simulate the Ant build/ directory, for backward compatibility... I can copy the archives there after they've been built, of course, if I can get the phase sequencing right. Is there an equivalent standard configuration for Apache binary release? - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: maven-assembly-plugin, bin example is giving me trouble
Sorry: https://github.com/apache/xalan-java/tree/xalan-java-mvn-refactored (which currently has the binary assembly commented out). Dependency order... Well, I'm currently running the assembly at the top level, which would presumably mean it has to run after packaging of the contained modules. I suppose I could try moving it down to the module at the farthest end of the current dependency chain, or even into a new module which exists just to depend on everything else, but that feels like I'm solving the wrong problem; "give me an assembly for the whole project" is conceptually a top-level operation and I'd expect to invoke it from the root module. On 11/10/2023 10:54 PM, Alexander Kriegisch wrote: Tried making my top-level module dependent on all the others Don't! That does not make any logical sense. Checked in on xalan-java branch xalan-java-mvn-refactored Please always provide a link. I have no idea where to find your project. To you, that might be obvious. to others, it is not. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: maven-assembly-plugin, bin example is giving me trouble
Tried making my top-level module dependent on all the others so the assembly invoked there would run last. Unfortunately, it seems the dependencies are inherited to all the children, and Maven complains about dependencies upon self. I presume there's an obvious idiom that I just haven't yet beaten into my head. Checked in on xalan-java branch xalan-java-mvn-refactored with bin assembly commented out, if anyone wants to see it in context. On 11/10/2023 9:37 PM, Joseph Kessselman wrote: Oh. I probably forgot to set dependencies. Checking. On 11/10/2023 9:35 PM, Joseph Kessselman wrote: 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 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 to reference src/assembly/bin.xml, and dropped there a copy of the taken from the page, modified to output to tar.gz and zip. I changed the 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 section entirely (trying to rely on defaults), I get the same error message. Does a 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 : ... maven-assembly-plugin 3.6.0 false src/assembly/src.xml src/assembly/bin.xml make-assembly package single ... And my bin.xml: 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";> bin tar.gz zip true true modules/maven-assembly-plugin false - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: maven-assembly-plugin, bin example is giving me trouble
Oh. I probably forgot to set dependencies. Checking. On 11/10/2023 9:35 PM, Joseph Kessselman wrote: 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 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 to reference src/assembly/bin.xml, and dropped there a copy of the taken from the page, modified to output to tar.gz and zip. I changed the 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 section entirely (trying to rely on defaults), I get the same error message. Does a 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 : ... maven-assembly-plugin 3.6.0 false src/assembly/src.xml src/assembly/bin.xml make-assembly package single ... And my bin.xml: 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";> bin tar.gz zip true true modules/maven-assembly-plugin false - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
maven-assembly-plugin, bin example is giving me trouble
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 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 to reference src/assembly/bin.xml, and dropped there a copy of the taken from the page, modified to output to tar.gz and zip. I changed the 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 section entirely (trying to rely on defaults), I get the same error message. Does a 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 : ... maven-assembly-plugin 3.6.0 false src/assembly/src.xml src/assembly/bin.xml make-assembly package single ... And my bin.xml: 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";> bin tar.gz zip true true modules/maven-assembly-plugin false - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: Can the jar plugin respect .gitignore?
... Actually, correction -- not the jar plugin, the assembly plugin. (sigh) On 11/10/2023 1:42 PM, Joseph Kessselman wrote: (Or, equivalently be told to take exclude list from a file in .gitignore syntax and then be told .gitignore was that file.) If not, I'd consider that worth adding. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Can the jar plugin respect .gitignore?
(Or, equivalently be told to take exclude list from a file in .gitignore syntax and then be told .gitignore was that file.) If not, I'd consider that worth adding. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Keeping java's version in sync with project's version
For obvious reasons, if would be nice if the -version option on my project automatically reported the version I'd set in the pom.xml rather than my trying to synchronize the two manually. The best approaches I've found so far are in https://stackoverflow.com/questions/2712970/get-maven-artifact-version-at-runtime ... but there's a note that at least one of them doesn't work in all classloaders, or in openjdk. I'm willing to have the pom write this into a file that the Java code would query, if that's what it takes to have a portable solution, but I'm not sure what the best way to express that would be. There must be an established Best Practices solution for this, right? - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: Multi-module build, emulating Ant build...
Right. Copypaste of the plugin doesn't work because Maven is declarative. One instance of exec-maven-plugin with multiple s, each having its own ID (since the default is to collide) and its own set of arguments, appears to be what's intended. Unfortunately only the first seems to be running. Undoubtedly a Maven-beginner error, misunderstanding some bit of idiom, but I haven't yet flailed my way to a solution. I've opened this as an Issue, mostly because I think it's worth explicitly adding an example of this sort to the documentation to help other novices. That is, assuming that what I want to do is possible. Which it should be, right? https://github.com/mojohaus/exec-maven-plugin/issues/388 - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: Multi-module build, emulating Ant build...
(To clarify: Reason I'm asking is that the example of exec:java puts all the parameters in rather than in , and I'm not clear on whether I can have for multiple runs, or move the arguments into the , or something else to avoid repeating quite so much boilerplate.) On 11/6/2023 7:14 PM, Joseph Kessselman wrote: Turns out Stylebook does have a front-end driver that I don't have source for, so I'm just invoking it via exec:java for now. I'll clean up later. At least it gets rid of the platform-specific script and puts the pom in charge of everything. Quick question re exec-maven-plugin: Is it possible for one instance of the plugin to run multiple executions, or should I just rely on copypasta? On 11/4/2023 7:53 PM, Joseph Kessselman wrote: 1) For backward compatibility with the prior Ant build (and with the test framework's assumptions about where compiled code will land), I have my maven build creating ./build/ in the top-level directory and copying the jarfiles from the individual modules up to that using maven-dependency-plugin. It would probably be a good thing to copy the modules' *-sources.jar files there too, but I haven't found a syntax which will do that without also copying all the dependencies' sources.jar files. Any tips? 2) Some of Xalan's older documentation was written in stylebook. I'm currently handling that by running a post-build script (.sh or .bat) to execute the org.apache.stylebook.StyleBook class several times with appropriate arguments. It'd be more elegant to invoke that from the pom, of course, for clarity and portability... but I haven't yet gotten the exec plugin to Do The Right Thing. The needed command is something like (in Linux syntax): java -cp stylebook/stylebook-1.0-b3_xalan-2.jar:tools/xalan2jdoc.jar:serializer/target/classes:xalan/target/classes org.apache.stylebook.StyleBook loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=./target/site/design/ ./stylebook/sources/xalandesign.xml ./stylebook/style ... where of course the */target/classes are the compiled sub-modules and could just as easily be the generated jarfiles and referenced as maven artifacts (right?). Might be possible to use the ant-stylebook plugin instead, but that seems to be deprecated, not well documented, and have CVEs against it... which last probably apply to my local copy too, admittedly. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: Multi-module build, emulating Ant build...
Turns out Stylebook does have a front-end driver that I don't have source for, so I'm just invoking it via exec:java for now. I'll clean up later. At least it gets rid of the platform-specific script and puts the pom in charge of everything. Quick question re exec-maven-plugin: Is it possible for one instance of the plugin to run multiple executions, or should I just rely on copypasta? On 11/4/2023 7:53 PM, Joseph Kessselman wrote: 1) For backward compatibility with the prior Ant build (and with the test framework's assumptions about where compiled code will land), I have my maven build creating ./build/ in the top-level directory and copying the jarfiles from the individual modules up to that using maven-dependency-plugin. It would probably be a good thing to copy the modules' *-sources.jar files there too, but I haven't found a syntax which will do that without also copying all the dependencies' sources.jar files. Any tips? 2) Some of Xalan's older documentation was written in stylebook. I'm currently handling that by running a post-build script (.sh or .bat) to execute the org.apache.stylebook.StyleBook class several times with appropriate arguments. It'd be more elegant to invoke that from the pom, of course, for clarity and portability... but I haven't yet gotten the exec plugin to Do The Right Thing. The needed command is something like (in Linux syntax): java -cp stylebook/stylebook-1.0-b3_xalan-2.jar:tools/xalan2jdoc.jar:serializer/target/classes:xalan/target/classes org.apache.stylebook.StyleBook loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=./target/site/design/ ./stylebook/sources/xalandesign.xml ./stylebook/style ... where of course the */target/classes are the compiled sub-modules and could just as easily be the generated jarfiles and referenced as maven artifacts (right?). Might be possible to use the ant-stylebook plugin instead, but that seems to be deprecated, not well documented, and have CVEs against it... which last probably apply to my local copy too, admittedly. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Multi-module build, emulating Ant build...
1) For backward compatibility with the prior Ant build (and with the test framework's assumptions about where compiled code will land), I have my maven build creating ./build/ in the top-level directory and copying the jarfiles from the individual modules up to that using maven-dependency-plugin. It would probably be a good thing to copy the modules' *-sources.jar files there too, but I haven't found a syntax which will do that without also copying all the dependencies' sources.jar files. Any tips? 2) Some of Xalan's older documentation was written in stylebook. I'm currently handling that by running a post-build script (.sh or .bat) to execute the org.apache.stylebook.StyleBook class several times with appropriate arguments. It'd be more elegant to invoke that from the pom, of course, for clarity and portability... but I haven't yet gotten the exec plugin to Do The Right Thing. The needed command is something like (in Linux syntax): java -cp stylebook/stylebook-1.0-b3_xalan-2.jar:tools/xalan2jdoc.jar:serializer/target/classes:xalan/target/classes org.apache.stylebook.StyleBook loaderConfig=sbk:/style/loaderdesign.xml targetDirectory=./target/site/design/ ./stylebook/sources/xalandesign.xml ./stylebook/style ... where of course the */target/classes are the compiled sub-modules and could just as easily be the generated jarfiles and referenced as maven artifacts (right?). Might be possible to use the ant-stylebook plugin instead, but that seems to be deprecated, not well documented, and have CVEs against it... which last probably apply to my local copy too, admittedly. - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Feedback sought
I've just issued a pull request proposing that the Apache Xalan-Java project cut over from Ant-based to Maven-based build. This is the first time I'm working with Maven, and I'm *sure* I have done things that are bad form. If anyone has time and energy to glance at it and sanity-check that I haven't made too much of a mess, that would be tremendously appreciated. https://github.com/apache/xalan-java/pull/101 - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
Re: "First time caller..." javadoc taglet dependencies?
Oh. Duh. com.sun tools 1.6.0 system ${toolsjar} On 10/3/2023 10:04 PM, Alexander Kriegisch wrote: Hi Joseph. I think you uncovered a bug in Maven Javadoc Plugin. I just created https://issues.apache.org/jira/browse/MJAVADOC-775 on your behalf. As a workaround for the non-functioning 'tagletpath' option, I recommend to separately publish the taglet library as a Maven artifact, which then you can refer to using the 'tagletArtifact' option. The hypothetical workaround to just use a system-scoped dependency and refer to that in 'tagletArtifact', is not working either. So, until this will have been fixed, your options are very limited. Because I was looking at the two simple taglet classes in your JAR anyway from my IDE when analysing your problem, in the attached ZIP archive is the decompiled source code for both classes, just in case you do not have the sources anymore and want to recreate the JAR as a separate artifact. I hope that the mailing list does not strip off attachments. Regards - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org
"First time caller..." javadoc taglet dependencies?
Hi, folks. I'm in the process of trying to port the Apache Xalan build from Ant to Maven. It's close to usable, but I'm still struggling with a few odd corners. One of the odder corners: The Xalan documentation uses a javadoc taglet, @xsl.usage, to indicate whether a method is intended only for internal use despite having to be public for cross-package references. This is working fine in one of the two modules of this project, but in the other I get: [ERROR] javadoc: error - Error - Exception java.lang.ClassNotFoundException thrown while trying to register Taglet xalan2jtaglet.XSLUsageTag... [ERROR] /home/keshlam/git/xalan-java-mvn/serializer/src/main/java/org/apache/xml/serializer/AttributesImplSerializer.java:37: error: unknown tag: xsl.usage Not a very helpful error message Trying to probe at this, the best guess I have is that the taglet code has a dependency on another jarfile, specifically tools.jar (or equivalent). None of my POMs explicitly reference tools.jar, but it's possible that one module is acquiring it as an indirect dependency while the other isn't. My question is whether this diagnosis is likely to be vaguely correct, if not how to get a more useful error message out of the javadoc invocation, and if so how to make tools.jar available to the taglet in a moderately portable manner. I've been trying various fragments from Stack Overflow and haven't found one that worked for me yet, hence the question here. The overall porting attempt is checked in as https://github.com/jkesselm/xalan-java-mvn.git if you want to look at the configuration as it currently stands, with this problem as yet unsolved. Thanks in advance. "If it was easy, they wouldn't need _us_." (If anyone is foolish enough to want to glance over the pom.xml files for this build and sanity-check them for massive volations of Maven idiom or horrible misunderstandings of Maven use, I'd greatly appreciate it. I haven't previously written a Maven configuration and a lot of this has been guesswork based on how many other build systems have behaved.) - To unsubscribe, e-mail: users-unsubscr...@maven.apache.org For additional commands, e-mail: users-h...@maven.apache.org