Tôi có một ứng dụng Java 1.6 được triển khai trên một số máy (~ 30) và bắt đầu như một dịch vụ Windows.Cách tự động nâng cấp ứng dụng Java trong khi khởi động?
Vấn đề chính của tôi liên quan đến việc duy trì các hiện vật được triển khai này: nếu tôi phát triển phiên bản mới của ứng dụng này, tôi không muốn triển khai lại thủ công trên mỗi máy.
Lý tưởng nhất là khi dịch vụ Windows khởi động, nó sẽ kiểm tra trên máy chủ từ xa nếu có bản cập nhật và nếu nó được tìm thấy, thì nó sẽ nâng cấp ứng dụng. Lưu ý rằng có thể chấp nhận được rằng sau khi nâng cấp này, dịch vụ yêu cầu phải khởi động lại.
Cơ chế này có thể được so sánh với xác minh chụp nhanh Maven: nếu có phiên bản mới hơn của phiên bản SNAPSHOT
trên kho lưu trữ từ xa, sau đó tải xuống Maven trước khi chạy. Lưu ý rằng bản thân ứng dụng sẽ được triển khai trên kho lưu trữ Maven (trong trường hợp của chúng tôi là Nexus), do đó việc kiểm tra cập nhật sẽ được thực hiện đối với phiên bản Nexus này.
Các giải pháp kỹ thuật của tôi để thực hiện cập nhật ứng dụng tự động như vậy là gì?
Đừng ngần ngại hỏi thêm chi tiết về thông tin kỹ thuật hoặc về ngữ cảnh ...
Cảm ơn.
Sửa: Như đã nêu bởi Peter Lawrey, tôi có thể sử dụng Java Web Start. Tuy nhiên, làm thế nào tôi có thể tích hợp JWS trong một ứng dụng Java được chạy như một dịch vụ Windows?
Đây không phải là vấn đề về java. Thêm quản lý triển khai. – Santosh
Trong khi ngữ pháp không thực sự là một vấn đề Java, tôi không thấy một phiên bản chung chung của vấn đề (đảm bảo rằng phiên bản bắt đầu luôn là phiên bản mới nhất có sẵn) không thể được giải quyết bằng Java. Một bản tóm tắt của tải lớp mạng, có thể? –
@Santosh có và không. Windows - đặc biệt là những cái chúng tôi đang sử dụng ở đây - không cung cấp các công cụ cần thiết để giảm bớt một thủ tục như vậy. Hãy cho tôi Linux, ssh, hoặc một số kịch bản bash, và tôi sẽ hạnh phúc :) – romaintaz