У меня есть проект Maven;Я собираю его, используя maven 3.5.0 со следующими параметрами:
clean install -Dmaven.test.skip=true -X
Я выполнил сборку maven на трех разных машинах:
- Debian Jessie 8.5
- Ubuntu 16.04
- Windows 10
Я использую maven 3.5.0 на всех них, но единственная машина, которая выводит свои данные, как и ожидалось, - Windows.Настройки Maven идентичны.
Я использовал инструмент сравнения JAR, чтобы найти различия;были только некоторые игнорируемые изменения.
Чтобы быть полностью ясным, и в случае, если эта информация может быть полезна для предложения решения, я думаю, что я должен объяснить, что не так с выводом maven для Unix-машин.
Проект 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
]
AsВы видите, символ ^M
в конце строки, содержащей поле Authorization
, меняет свое значение;это делает значения заголовка недействительными на стороне сервера.
Я не ожидал, что сервер добавит эти ^M
символы в конце строк запроса.
Есть ли что-то другое между машинами в Java?Разве java не является кроссплатформенным языком?
Если это поможет, я должен упомянуть, что разработка была сделана на компьютере с Windows.
После некоторого поиска в Google, я просто нашел этовопрос , который не полезен в моем случае.