Class WriteProperties

  • All Implemented Interfaces:
    java.lang.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:
    Properties.store(OutputStream, String)
    • Constructor Detail

      • WriteProperties

        public WriteProperties()
    • Method Detail

      • getProperties

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

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

        public void property​(java.lang.String name,
                             java.lang.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​(java.util.Map<java.lang.String,​java.lang.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 java.lang.String getLineSeparator()
        Returns the line separator to be used when creating the properties file. Defaults to `\n`.
      • setLineSeparator

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

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

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

        @Input
        public java.lang.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​(java.lang.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 java.io.File getOutputFile()
        Deprecated.
        Returns the output file to write the properties to.
      • setOutputFile

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

        @Deprecated
        public void setOutputFile​(java.lang.Object outputFile)
        Deprecated.
        Sets the output file to write the properties to.
      • writeProperties

        public void writeProperties()
                             throws java.io.IOException
        Throws:
        java.io.IOException