Windows和Unix计算机之间的Maven构建结果不同

时间:2018-05-23 11:25:06

标签: java windows maven unix build

我有一个maven项目;我使用maven 3.5.0使用以下选项构建它:

clean install -Dmaven.test.skip=true -X

我在三台不同的机器上执行了maven构建:

  1. Debian Jessie 8.5
  2. Ubuntu 16.04
  3. Windows 10
  4. 我在所有这些上使用maven 3.5.0,但是它的输出正在按预期执行的唯一机器是Windows。 Maven设置完全相同。

    我使用了JAR比较工具来发现差异;只有一些可忽略的变化。

    要完全清楚,如果这些信息对建议解决方案有用,我想我应该解释一下unix机器maven输出有什么问题。

    maven项目提供REST API。在unix机器中,服务器在每行请求的末尾添加一个DOS字符。

    这是在Unix机器上构建的服务器的日志:

    Received [GET /auth-server/v2/api/me HTTP/1.1^M
    Authorization: Bearer 8631dff0-323a-4058-a55e-505dc65f5f4c^M
    cache-control: no-cache^M
    Postman-Token: f71d256e-4036-4201-889a-36e3782c7bf2^M
    User-Agent: PostmanRuntime/7.1.1^M
    Accept: */*^M
    Host: 192.168.100.185:1998^M
    accept-encoding: gzip, deflate^M
    Connection: keep-alive^M
    ^M
    ]
    

    这是服务器的日志建立在windows机器上:

    Received [GET /auth-server/v2/api/me HTTP/1.1
    Authorization: Bearer 8631dff0-323a-4058-a55e-505dc65f5f4c
    cache-control: no-cache
    Postman-Token: f71d256e-4036-4201-889a-36e3782c7bf2
    User-Agent: PostmanRuntime/7.1.1
    Accept: */*
    Host: 192.168.100.185:1998
    accept-encoding: gzip, deflate
    Connection: keep-alive
    
    ]
    

    如您所见,包含^M字段的行末尾的Authorization字符会更改其值;这使得标头值在服务器端无效。

    我不希望服务器在请求行的末尾添加^M个字符。

    关于java的机器之间有什么不同吗? java不是跨平台语言吗?

    如果有帮助,我应该提到开发是在Windows机器上完成的。

    经过一些谷歌搜索,我刚刚发现this question这对我的情况没用。

0 个答案:

没有答案