jar 명령을 사용하여 jar 파일을 만듭니다. md5 서명을 사용하여 jar 파일을 캐시하는 동안 정확한 소스에서 생성 된 jar에는 다른 md5 서명이 있음을 발견했습니다. 더 자세히 조사하자마자 항아리가 만들어 질 때마다 내용이 정확히 동일하다는 것을 알게되었습니다 (diff -qr은 비어 있음). 생성의 타임 스탬프는 md5 서명을 버리는 jar 파일에 인코딩되어있는 것으로 나타났습니다. 다른 사람들은 동일한 것을 발견했습니다 : Java/zip: Why are .jar files non-deterministically created?결정적으로 .jar 파일 만들기 (매번 동일)
매번 maven : http://gary-rowe.com/agilestack/2013/08/08/how-to-create-a-deterministic-jar과 똑같이 jar 파일을 동일하게 만드는 방법에 대한 블로그 게시물이 있습니다. 그러나 jar 및 zip (설치 권한없이 서버에서이 작업을 수행해야 할 수도 있음)과 같이 쉽게 사용할 수있는 명령을 사용하는 명령 줄을 사용하는 간단한 솔루션이 필요합니다. 현재 사용중인 것과 동일한 "기능"항아리로 연결될 수 있습니다. jar 명령.
편집 : 내 목적을 위해, 또한 에 충분는 항아리가 동일하지 않은 경우에도에서 동일 빌드되도록 빨리는 MD5를 찾을 수 있습니다. 지금까지 찾은 유일한 방법은 jar 파일을 압축 해제하고 모든 구성 요소 파일을 md5로 복사하는 것입니다. 그러나 나는 더 큰 항아리에 대해서는 느리고 처음부터 캐스팅하지 않으려 고 캐싱의 목적을 물리 칠 것입니다. 더 빠르고 더 좋은 솔루션이 있습니까?
그래서 소스를 항아리로 컴파일한다면 간단히 한 번만 실행 한 다음 xcopy 명령을 실행하거나 해당 항아리를 복사하지 말아야합니다. – 3kings
비트가 같은 컨테이너를 갖는 것이 중요한 이유는 무엇입니까? – chrylis
문제는, 나는 항아리를 캐쉬하려고한다. 항아리는 여러 소스 (java 파일, 다른 항아리)를 사용하여 빌드된다. 특정 jar를 빌드해야하는지 여부를 판별하기 위해 모든 소스 java 파일과 jar의 md5가 계산됩니다. 컴포넌트 jar는 캐싱없이 리빌드되며, 이런 일이 발생하면 md5s가 변경되어 더 큰 jar에 대한 캐싱이 해제됩니다. – user34812