Class WriteProperties

java.lang.Object
org.gradle.api.internal.AbstractTask
org.gradle.api.DefaultTask
org.gradle.api.tasks.WriteProperties
All Implemented Interfaces:
Comparable<Task>, org.gradle.api.internal.DynamicObjectAware, org.gradle.api.internal.TaskInternal, Named, ExtensionAware, Task, Configurable<Task>

@CacheableTask public abstract class WriteProperties extends DefaultTask
Writes a Properties in a way that the results can be expected to be reproducible.

There are a number of differences compared to how properties are stored:

  • no timestamp comment is generated at the beginning of the file
  • the lines in the resulting files are separated by a pre-set separator (defaults to '\n') instead of the system default line separator
  • the properties are sorted alphabetically

Like with Properties, Unicode characters are escaped when using the default Latin-1 (ISO-8559-1) encoding.

Since:
3.3
See Also:
  • Constructor Details

    • WriteProperties

      public WriteProperties()
  • Method Details

    • getProperties

      @Input public Map<String,String> getProperties()
      Returns an immutable view of properties to be written to the properties file.
      Since:
      3.3
    • setProperties

      public void setProperties(Map<String,Object> properties)
      Sets all properties to be written to the properties file replacing any existing properties.
      See Also:
    • property

      public void property(String name, Object value)
      Adds a property to be written to the properties file.

      A property's value will be coerced to a String with String#valueOf(Object) or a Callable returning a value to be coerced into a String.

      Values are not allowed to be null.

      Parameters:
      name - Name of the property
      value - Value of the property
      Since:
      3.4
    • properties

      public void properties(Map<String,Object> properties)
      Adds multiple properties to be written to the properties file.

      This is a convenience method for calling property(String, Object) multiple times.

      Parameters:
      properties - Properties to be added
      Since:
      3.4
      See Also:
    • getLineSeparator

      @Input public String getLineSeparator()
      Returns the line separator to be used when creating the properties file. Defaults to `\n`.
    • setLineSeparator

      public void setLineSeparator(String lineSeparator)
      Sets the line separator to be used when creating the properties file.
    • getComment

      @Nullable @Optional @Input public String getComment()
      Returns the optional comment to add at the beginning of the properties file.
    • setComment

      public void setComment(@Nullable String comment)
      Sets the optional comment to add at the beginning of the properties file.
    • getEncoding

      @Input public String getEncoding()
      Returns the encoding used to write the properties file. Defaults to ISO_8859_1. If set to anything different, unicode escaping is turned off.
    • setEncoding

      public void setEncoding(String encoding)
      Sets the encoding used to write the properties file. Defaults to ISO_8859_1. If set to anything different, unicode escaping is turned off.
    • getOutputFile

      @Internal @Deprecated public File getOutputFile()
      Deprecated.
      Returns the output file to write the properties to.
    • setOutputFile

      @Deprecated public void setOutputFile(File outputFile)
      Deprecated.
      Sets the output file to write the properties to.
      Since:
      4.0
    • setOutputFile

      @Deprecated public void setOutputFile(Object outputFile)
      Deprecated.
      Sets the output file to write the properties to.
    • getDestinationFile

      @OutputFile public abstract RegularFileProperty getDestinationFile()
      The output properties file.
      Since:
      8.1
    • writeProperties

      public void writeProperties() throws IOException
      Throws:
      IOException