org.gradle.api.tasks

## 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, ExtensionAware, Task, org.gradle.util.Configurable<Task>

      @Incubating
       @CacheableTask
      public 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:
    `Properties.store(OutputStream, String)`

- - ### Nested Class Summary

    - ### Nested classes/interfaces inherited from interface org.gradle.api.Task

      `Task.Namer`

  - ### Field Summary

    - ### Fields inherited from interface org.gradle.api.Task

      `TASK_ACTION, TASK_DEPENDS_ON, TASK_DESCRIPTION, TASK_GROUP, TASK_NAME, TASK_OVERWRITE, TASK_TYPE`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `WriteProperties()`

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method and Description
    --- | ---
    `String` | `getComment()` Returns the optional comment to add at the beginning of the properties file.
    `String` | `getEncoding()` Returns the encoding used to write the properties file.
    `String` | `getLineSeparator()` Returns the line separator to be used when creating the properties file.
    `File` | `getOutputFile()` Returns the output file to write the properties to.
    `Map<String,String>` | `getProperties()` Returns an immutable view of properties to be written to the properties file.
    `void` | `properties(Map<String,Object> properties)` Adds multiple properties to be written to the properties file.
    `void` | `property(String name, Object value)` Adds a property to be written to the properties file.
    `void` | `setComment(String comment)` Sets the optional comment to add at the beginning of the properties file.
    `void` | `setEncoding(String encoding)` Sets the encoding used to write the properties file.
    `void` | `setLineSeparator(String lineSeparator)` Sets the line separator to be used when creating the properties file.
    `void` | `setOutputFile(File outputFile)` Sets the output file to write the properties to.
    `void` | `setOutputFile(Object outputFile)` Sets the output file to write the properties to.
    `void` | `setProperties(Map<String,Object> properties)` Sets all properties to be written to the properties file replacing any existing properties.
    `void` | `writeProperties()`

    - ### Methods inherited from class org.gradle.api.DefaultTask

      `newInputDirectory, newInputFile, newOutputDirectory, newOutputFile`

    - ### Methods inherited from class org.gradle.api.internal.AbstractTask

      `addValidator, appendParallelSafeAction, compareTo, configure, deleteAllActions, dependsOn, dependsOnTaskDidWork, doFirst, doFirst, doFirst, doLast, doLast, doLast, execute, finalizedBy, getActions, getAnt, getAsDynamicObject, getConvention, getDependsOn, getDescription, getDestroyables, getDidWork, getEnabled, getExecuter, getExtensions, getFinalizedBy, getGroup, getIdentityPath, getImpliesSubProjects, getInputs, getLocalState, getLogger, getLogging, getMustRunAfter, getName, getOnlyIf, getOutputs, getPath, getProject, getServices, getShouldRunAfter, getStandardOutputCapture, getState, getTaskActions, getTaskDependencies, getTemporaryDir, getTemporaryDirFactory, getValidators, hasProperty, injectIntoNewInstance, isEnabled, isHasCustomActions, leftShift, mustRunAfter, onlyIf, onlyIf, prependParallelSafeAction, property, setActions, setDependsOn, setDescription, setDidWork, setEnabled, setExecuter, setFinalizedBy, setGroup, setImpliesSubProjects, setMustRunAfter, setOnlyIf, setOnlyIf, setProperty, setShouldRunAfter, shouldRunAfter, toString`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### WriteProperties

          public WriteProperties()

  - ### Method Detail

    - #### getProperties

          @Incubating
           @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:
        `properties(Map)`, `property(String, Object)`

    - #### property

          @Incubating
          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

          @Incubating
          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:
        `property(String, Object)`

    - #### 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

          @Input
           @Optional
          public String getComment()

      Returns the optional comment to add at the beginning of the properties file.

    - #### setComment

          public void setComment(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

          @OutputFile
          public File getOutputFile()

      Returns the output file to write the properties to.

    - #### setOutputFile

          public void setOutputFile(File outputFile)

      Sets the output file to write the properties to.
      Since:
        4.0

    - #### setOutputFile

          public void setOutputFile(Object outputFile)

      Sets the output file to write the properties to.

    - #### writeProperties

          public void writeProperties()
                               throws IOException

      Throws:
        `IOException`