Abbiamo diversi progetti di maven, che sono costruiti sul server di build. In alcuni casi vogliamo firmare i nostri risultati. Usiamo Maven Jarsigner Plugin per farlo.Strategia di firma di Jar in Maven Projects
siamo di fronte alla seguenti domande:
- Dove dovremmo memorizzare le password per la firma?
- Qual è una buona strategia per la firma di progetti Maven?
Non vogliamo mettere il nostro keystore da qualche parte sui nostri server e con un percorso hardcode. Abbiamo quindi avvolto questo keystore in un barattolo e lo abbiamo caricato come un artefatto nel nostro repository maven interno. Quando vogliamo firmare un progetto di maven, scarichiamo l'artefatto del keystore utilizzando lo Maven Dependency Plugin e alleghiamo l'obiettivo di firma al ciclo di vita del build di Maven. Here è informazioni più dettagliate.
Per nascondere le password per il keystore, le inseriamo nel nostro file aziendale pom.xml
. Pensiamo anche a memorizzare le password in settings.xml
sul server di build.
Quando un progetto viene creato e firmato su una macchina per sviluppatori, lo firmiamo con un certificato autofirmato. Ma quando il progetto viene creato e firmato su un server di build, lo firmiamo con il nostro certificato "ufficiale".
È una buona strategia?
Siamo andati allo stesso modo. Tranne che le password del keystore di produzione sono memorizzate in profile settings.xml. E quel profilo è invocato automaticamente dal build server. –
Inoltre, il tuo alias non può contenere un carattere a virgoletta singola a causa di questo errore: http://jira.codehaus.org/browse/MJARSIGNER-11 –
A partire dalla versione 1.3, il plug-in firmatario jar supporta la crittografia Maven. Ciò rende relativamente sicuro memorizzare la password in settings.xml. Controlla http://maven.apache.org/guides/mini/guide-encryption.html per i dettagli. – Rob