Errata

Building and Testing with Gradle

Errata for Building and Testing with Gradle

Submit your own errata for this product.

The errata list is a list of errors and their corrections that were found after the product was released.

The following errata were submitted by our customers and have not yet been approved or disproved by the author or editor. They solely represent the opinion of the customer.

Color Key: Serious technical mistake Minor technical mistake Language or formatting error Typo Question Note Update

Version Location Description Submitted by Date submitted
Printed Page xi
last para

"The presentation of the topics reflect..." should be "The presentation of the topics reflects..."

Paul Croome  Jun 29, 2012 
Other Digital Version i
2.

Hi,

If you read the online version at: http://gradleware.com/registered/books/building-and-testing/preface.html

then the section "2. Conventions Used in This Book" says,

"This icon indicates a warning or caution.", but no icon is shown. Also, in the same section, "This icon signifies a tip, suggestion, or general note." shows no icon either.

Thanks

Anonymous  Dec 11, 2014 
PDF Page 8
Example 1-5 project layout

The "src" folder is shown as a child of "build.gradle". It should be shown as at the same level as the build.gradle file. (As it is in the next example 1-6 on page 9)

Scott Palmer  Jul 26, 2011 
Printed Page 9
Middle of page in folder structure layout

Missing minor part of the folder structure. After test-results, I have a \tmp folder followed by \jar which then contains manifest.mf file (like seen at the bottom of page 49).

Mike Miller  Jul 18, 2011 
PDF Page 9
2nd paragraph

The paragraph describing the product of example 1-6 indicates "... a JAR has been built using the project directory name as the filename." However since we don't know the name of the directory it is unclear that this is referring to "minimal-java-build-file.jar" in the build/libs folder. Netbeans users in particular might confuse that jar with a dependency and not the actual build product, since the default Netbeans Ant projects would put dependencies in "dist/lib" and the folder name "libs" could imply dependencies rather than the main jar of a build.

Scott Palmer  Jul 26, 2011 
PDF Page 9
Example 1-6 project layout

Using Gradle 1.0-milestone-3 (the latest available as of 2011-07-26) there is another folder that created that is not shown in example 1-6.

./build/tmp/jar

which contains a file named MANIFEST.MF

The project layout shown for example 1-6 also shows a file "run-example.bsh" which is not created by Gradle. It appears to be a script that was created by hand to run the example.

Scott Palmer  Jul 26, 2011 
PDF Page 17
Example 2-9

The paragraph above example 2-9 mentions that the example will demonstrate a way of making the task "world" depend on the task "hello", but the example shown doesn't even contain either of those tasks. Even though the comments in the code also mention world and hello, the actual tasks are "loadTestData" and "createSchema"

The paragraph under example 2-9 discusses the task "loadTestData" depending on "createSchema" and "compileTestClasses". The first part of example 2-10 shows this, but the remaining three alternative methods of declaring the dependencies use the task "world" which is set to depend on "createSchema" and "compileTestClasses"

Examples 2-9 and 2-10 are mixed up between a "hello world" example used to lead in to example 2-9 and some other "loadTestData" example.

Scott Palmer  Jul 26, 2011 
Printed, PDF, Page 17
Second and third paragraphs

Two task dependency examples are transposed in error.

The code sample that appears in Example 2-9 should be moved to Eaxmple 2-10 and vice versa.

RKielty  Apr 24, 2012 
Printed Page 19
1st para

The text states: "...and the new closure is appended to the start of the list to be executed in order." 'Appended' means 'added to the end', but here it seems that each successive closure is inserted before any existing closures. Perhaps it would be clearer to write: "...and the new closure is prepended to the start of the list..."

Paul Croome  Jul 02, 2012 
PDF Page 20
1st paragraph under example 2-16

"Note that we gather together the multiple calls to doFirst inside a single configuration block, and this occurs after the initial action is added to the world task."

should read:

"Note that we gather together the multiple calls to doFirst inside a single configuration block, and this occurs after the initial action is added to the setupDatabaseTests task."

Scott Palmer  Jul 26, 2011 
Printed Page 21
Example 2-20

In example 2-20 you show "$ build loadTestData" and I'm assuming you meant "$ gradle loadTestData".

Maybe you have an alias for gradle called build?

eweibust  Aug 23, 2011 
Printed, PDF Page 26
Section Dynamic Properties

Dynamic Task Properties don't exist anymore. There are now 'extra properties. https://discuss.gradle.org/t/deprecation-of-dynamic-properties-and-the-new-extra-properties/7745

Anna Ira Hurnaus  Oct 16, 2015 
Printed Page 29
Top of page in the note

The last line of the JavaExec task on page 28 references configurations.runtime (plural, with s) whereas the note at the top of page 29 on second line has "configuration.runtime" without the 's'.

Mike Miller  Jul 18, 2011 
PDF Page 32
Second last line

"youself" instead of "yourself"

Anonymous  May 15, 2015 
PDF Page 33
1st paragraph

"providing" misspelled as "provding".

David Greenbaum  Dec 03, 2013 
Printed Page 35
2nd paragraph, 4th line

or by wraping any Ant behavior in a Gradle plug-in.
should be:
or by wrapping any Ant behavior in a Gradle plug-in.

Anonymous  Mar 28, 2016 
Printed Page 37
top of page first full paragraph

One very important difference between Ant properties and Gradle properties are that the Ant properties are immutable, which trips up a lot of Java developers. Might we worth noting...

Mike Miller  Jul 18, 2011 
PDF Page 39
last paragraph on the page

Could we replace "In this more complex example of Example 3-9, we establish" with something like "Example 3-9 is a more complex example in which we establish"

george thomas  Nov 19, 2011 
PDF Page 42
Examples 3-16 and 3-17

The string in the task afterTheAntTask is the same as the string in the task beforeTheAntTask; presumably it needs to be replaced with a string like "A Gradle task that follows the Ant target"

george thomas  Nov 19, 2011 
PDF Page 44
paragraph immediately following Example 3-20

"On the build.gradle side of this example, the use of the * ?spread? operator demonstrates how to println repositories*.name all the repositories name fields in a single statement instead of three." sounds more like code than a sentence; please consider rewriting it

george thomas  Nov 19, 2011 
PDF Page 44
listing 3-12, printing localRepository3 information

The listing shows usage of things like:
repositories.localRepository3.latest
repositories.localRepository3.ivyPatterns

This doesn't work, now you have to call createResolver():
repositories.localRepository3.createResolver().latest
repositories.localRepository3.createResolver().ivyPatterns

I am not sure if it's my version of gradle (1.0-rc-1) or a bug.

wujek  Apr 15, 2012 
PDF Page 57
last paragraph before Example 4-14

Replace ":16:[Maven Central]" with "Maven Central"

george thomas  Nov 19, 2011 
Printed Page 81
3rd paragrah, next to last line

Sentence starts with 'As usual, Gradle wants to you give you the ability...' and I think you wanted 'As usual, Gradle wants to give you..." - getting rid of the first you.

Mike Miller  Jul 20, 2011