Dopo il passaggio da Java™ 8 a Java™ 11, la build restituisce un errore relativo a RequireJavaVersion. Cosa posso fare?
Per le build di Cloud Manager è possibile che l’esecuzione di maven-enforcer-plugin
non riesca e generi questo errore.
"[main] [WARNING] Rule 1: org.apache.maven.plugins.enforcer.RequireJavaVersion".
Si tratta di un problema noto dovuto al fatto che Cloud Manager utilizza una versione diversa di Java™ per eseguire il comando maven per la compilazione del codice. Basta omettere requireJavaVersion
dalle configurazioni del maven-enforcer-plugin
.
Il controllo di qualità del codice non riuscito e la distribuzione è bloccata. C’è un modo per aggirare questo controllo?
Sì. Tutti gli errori generati dal controllo di qualità del codice, a eccezione della valutazione di sicurezza, riguardano metriche non critiche e possono pertanto essere ignorati come parte di una pipeline di distribuzione espandendo gli elementi nell’interfaccia utente dei risultati.
L’utente con il ruolo Responsabile dell’implementazione, Responsabile del progetto o Proprietario business può ignorare i problemi (facendo in tal caso procedere la pipeline) o accettarli (causando in tal caso l’arresto della pipeline con un errore).
Per ulteriori informazioni, consulta i documenti Test di qualità del codice e Configurazione delle pipeline non di produzione.
Posso usare SNAPSHOT per la versione del progetto Maven?
Sì. Per le distribuzioni nell’ambiente di sviluppo, i file pom.xml
del ramo Git devono contenere -SNAPSHOT
dopo il valore <version>
.
Questo valore consente di installare la distribuzione successiva anche se la versione non è stata modificata. Per le distribuzioni nell’ambiente di sviluppo, non viene aggiunta né generata una versione automatica della build Maven.
È possibile impostare la versione su -SNAPSHOT
per le build o le implementazioni negli ambienti di staging e produzione. Cloud Manager imposta automaticamente un numero di versione corretto e crea un tag in Git per l’utente. Se necessario, è possibile fare riferimento a questo tag in un secondo momento.
Per ulteriori dettagli sulla gestione delle versioni, consulta Gestione delle versioni dei progetti Maven.
Come funziona il controllo delle versioni di pacchetti e bundle per le distribuzioni negli ambienti di staging e produzione?
Nelle distribuzioni in ambienti di staging e produzione, viene generata una versione automatica: consulta Gestione delle versioni dei progetti Maven.
Per il controllo delle versioni personalizzato per le distribuzioni negli ambienti di staging e produzione, imposta una versione Maven in tre parti appropriata, come ad esempio 1.0.0
. Aumenta il numero della versione per ogni esecuzione della distribuzione nell’ambiente di produzione.
Cloud Manager aggiunge automaticamente la versione alle build di staging e produzione e crea un ramo Git. Non è richiesta alcuna configurazione speciale. Se non si imposta una versione maven come descritto in precedenza, la distribuzione avviene comunque e viene impostata una versione automaticamente.
L’esecuzione della build Maven non riesce per le distribuzioni di Cloud Manager, ma a livello locale non genera errori. Qual è il problema?
Per ulteriori informazioni, fai riferimento a questa risorsa Git.
Cosa posso fare se l’esecuzione di una distribuzione di Cloud Manager non riesce al passaggio di distribuzione in AEM as a Cloud Service?
Il motivo più comune che causa la mancata esecuzione di una distribuzione è l’assenza di autorizzazioni sufficienti dell’utente sling-distribution-importer
. In questa situazione, il passaggio di distribuzione durante una distribuzione di Cloud Manager non riesce e vengono generati errori come quelli indicati di seguito.
[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.jackrabbit.vault.fs.io.Importer Error while committing changes. Retrying import from checkpoint at /. Retries 4/10
[Queue Processor for Subscriber agent forwardPublisherSubscriber] org.apache.sling.distribution.journal.impl.subscriber DistributionSubscriber Error processing queue item
org.apache.sling.distribution.common.DistributionException: Error processing distribution package
dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 162/infinite.
Caused by: org.apache.sling.api.resource.PersistenceException: Unable to commit changes to session.
Caused by: javax.jcr.AccessDeniedException: OakAccess0000: Access denied [EventAdminAsyncThread #7] org.apache.sling.distribution.journal.impl.publisher.DistributionPublisher [null] Error processing distribution package` `dstrpck-1583514457813-c81e7751-2da6-4d00-9814-434187f08d32. Retry attempts 344/infinite. Message: Error trying to extract package at path /etc/packages/com.myapp/myapp-base.ui.content-5.1.0-SNAPSHOT.
L’utente sling-distribution-importer
deve disporre di autorizzazioni aggiuntive per i percorsi contenuto definiti in ui.content package
. In genere, questo significa che è necessario aggiungere le autorizzazioni per /conf
e /var
.
La soluzione per aggiungere gli elenchi di controllo accesso (ACL) per l’utente sling-distribution-importer
è aggiungere uno script di configurazione OSGi RepositoryInitializer nel pacchetto di distribuzione delle app.
Nell’errore precedente, il pacchetto myapp-base.ui.content-*.zip
include contenuti in /conf
e /var/workflow
. Affinché la distribuzione venga eseguita correttamente, è necessario che sling-distribution-importer
disponga delle autorizzazioni in questi percorsi.
Di seguito è riportato un esempio di configurazione OSGi org.apache.sling.jcr.repoinit.RepositoryInitializer-DistributionService.config
che consente di aggiungere ulteriori autorizzazioni per l’utente sling-distribution-importer
. La configurazione aggiunge le autorizzazioni in /var
. Tale configurazione deve essere aggiunta al pacchetto dell’applicazione in /apps/myapp/config
(dove myapp è la cartella in cui è archiviato il codice dell’applicazione).