[ https://issues.apache.org/jira/browse/DERBY-6645?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16725979#comment-16725979 ]
Rick Hillegas commented on DERBY-6645: -------------------------------------- The existing maven logic in trunk/maven2 is only used to publish release artifacts to the maven repositories. Most developers never touch it. Only release managers do. Instructions for operating it can be found in the cookbook for release publication at https://wiki.apache.org/db-derby/ReleasePublication. The build targets for message management accomplish the following goals: 1) Messages and their localizations should be packaged inside the modules which raise those messages. However, the tools module violates this pattern for reasons which I don't understand. That logic pre-dates my involvement with Derby. The English tools messages are packaged inside the tools module but the non-English localizations for those messages live inside the locale-specific jars. Client messages and their localizations are packaged inside derbyclient.jar. Server messages and their localizations are packaged inside derbynet.jar. 2) The engine messages are split up into many smaller files. There are a lot of engine messages and this extra complexity is supposed to prevent the engine from faulting in unnecessary message strings and thereby consuming too much memory. In an effort to reduce the static footprint of the engine jar, the localizations for engine messages were separated out into separate jar files, one for each supported locale. As noted above, for some reason the localizations for tools messages managed to leak into those jar files. Message splitting is accomplished by the trunk/java/build/org/apache/derbyBuild/splitmessages.java build tool, which is invoked by the oddball trunk/java/org.apache.derby.engine/org/apache/derby/loc/build.xml script as part of building the engine module. 3) We generate user documentation for the engine messages. The following Reference Guide page is generated by the Derby build: http://db.apache.org/derby/docs/10.14/ref/rrefexcept71493.html. The source for the english engine messages lives in trunk/java/org.apache.derby.engine/org/apache/derby/loc/messages.xml alongside extra information needed to document them. This file is consumed by the trunk/java/build/org/apache/derbyBuild/MessageBuilder.java build tool. That tool generates trunk/generated/java/org.apache.derby.engine/org/apache/derby/loc/messages_en.properties, the input file to step (2) above. The MessageBuilder tool also generates the dita source for the Reference Guide page. > Switch to Maven for building Apache Derby > ----------------------------------------- > > Key: DERBY-6645 > URL: https://issues.apache.org/jira/browse/DERBY-6645 > Project: Derby > Issue Type: Improvement > Components: Build tools > Affects Versions: 10.10.2.0 > Reporter: Moritz Hoffmann > Priority: Major > Attachments: DERBY-6645_v1.patch > > > For a new user building Derby is very hard. It does not follow established > Java project structures and requires a lot of prior knowledge. Also the > documentation is rather short. Especially running the tests is non-intuitive > at the beginning. Thus, I propose that Derby switches to building using Maven > and restructures its components in a cleaner way. Testing should be revised > to produce reproducible results. This would make development and testing much > easier and more user-friendly. -- This message was sent by Atlassian JIRA (v7.6.3#76005)