Fahd Siddiqui created MNG-6259: ---------------------------------- Summary: Maven Resources Plugin copy error when filtering is true on a Mac Key: MNG-6259 URL: https://issues.apache.org/jira/browse/MNG-6259 Project: Maven Issue Type: Bug Components: Errors Affects Versions: 3.2.5 Reporter: Fahd Siddiqui
This is an error consistently on Mac (OS X 10.11.6), but it seems to work fine on linux (our jenkins agent). Basically, when `filtering` is set to true in the resources plugin, the resource file contents are copied incorrectly converting \${something} to ${something}. Note the missing back-slash, and also that "something" is not a maven variable. The expected behavior is to keep it unchanged. Here is a unit test that shows the issue: 1. First, create a resource text file "new.test" with just the string {code}\${something }{code} 2. Make sure that resource plugin has filtering set to "true": {code} <testResources> <testResource> <directory>src/test/resources</directory> <filtering>true</filtering> </testResource> {code} 3. Create the unit test below: {code} @Test public void test() throws IOException { URL url = Resources.getResource("conf/new.test"); String text = Resources.toString(url, Charsets.UTF_8); String expectedText = "\\${something }" ; System.out.println("actual: " + text); System.out.println("expected: " + expectedText); assertEquals(expectedText, text); } {code} 3. Note that when you run the above test from the IDE directly, it passes. 4. Run `mvn clean install` from command line and verify the following error: {code} actual: ${something } expected: \${something } org.junit.ComparisonFailure: Expected :\${something } Actual :${something } {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)