[ 
https://issues.apache.org/jira/browse/DERBY-4841?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12920552#action_12920552
 ] 

Rick Hillegas commented on DERBY-4841:
--------------------------------------

Thanks for the additional analysis, Dag and Knut. Although ant lets you put 
multiple targets on the command line, the resulting behavior is not clear to 
me. For instance, ant handles property overrides in a very idiosyncratic way 
and off the top of my head I don't know how property overriding behaves when 
you put multiple targets on the command line. This is all I could find in the 
ant documentation (from the "Command Line" section of the ant manual):

"It is also possible to specify one or more targets that should be executed. 
When omitted, the target that is specified in the default attribute of the 
project tag is used."

>From what you are saying, it seems that

ant foo bar

is not in general equivalent to

ant foo
ant bar

Perhaps our documentation will be less brittle (and more accurate) if we always 
phrase it in terms of separate commands rather than composite ones. That, at 
least, is the approach taken in BUILDING.html.

I have logged a new issue (DERBY-4845) to track the broken dependencies in our 
build scripts.

> Improve projecthelp for the top level Derby build script
> --------------------------------------------------------
>
>                 Key: DERBY-4841
>                 URL: https://issues.apache.org/jira/browse/DERBY-4841
>             Project: Derby
>          Issue Type: Improvement
>          Components: Build tools
>    Affects Versions: 10.7.0.0
>            Reporter: Rick Hillegas
>         Attachments: derby-4841-01-aa-ricksPicks.diff
>
>
> Ant scripts are supposed to be self-describing. The following command is 
> supposed to describe the public targets in the current directory:
>     ant -projecthelp
> Here is the output of this command for the top level build script today:
> Main targets:
>  checkCompilerLevel     Make sure compiler level is Java 5 level or higher.
>  class_size_catalog     create the class size catalog -- a java file
>  createBranch           Create a new branch (both docs and code)
>  parsers                Build the parsers
>  release                Build the release distributions
>  setCompilerProperties  Set the ant variables which identify the compiler 
> classpaths. Remove the autosetProps logic when this target becomes mandatory.
>  setInitialProperties   Set the initial properties for this build script. 
> This duplicates the property setting block in setCompilerProperties. Once we 
> make setCompilerProperties mandatory, this target should be removed.
>  state                  Build SanityState.java
> Default target: buildsource
> That does not seem like the list of public targets to me. This JIRA can be 
> used as a place to anchor work which we do on improving the user 
> documentation for our top level build script.
> I propose to make some changes to build.xml. Others are welcome to pile on. 
> Here's how it works:
> 1) The public targets are the ones which have "description" attributes.
> 2) So to make a target public, fill in a "description" attribute for it.
> 3) And to hide a target, move its "description" text into an introductory 
> comment bracketed by "<!--" and "-->"

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to