Build-omgeving build-environment
Meer informatie over de Cloud Manager-ontwikkelomgeving en hoe deze uw code bouwt en test.
Omgevingsdetails samenstellen build-environment-details
Cloud Manager bouwt en test uw code gebruikend een gespecialiseerde bouwstijlmilieu.
-
De ontwikkelomgeving is gebaseerd op Linux en is afgeleid van Ubuntu 22.04.
-
Apache Maven 3.9.4 is geïnstalleerd.
- De Adobe adviseert gebruikers hun Geweven bewaarplaatsen bij te werken om HTTPS in plaats van HTTPte gebruiken.
-
De geïnstalleerde Java-versies zijn Oracle JDK 11.0.22 en Oracle JDK 8u401.
-
BELANGRIJK: Door gebrek, wordt de
JAVA_HOME
milieuvariabele geplaatst aan/usr/lib/jvm/jdk1.8.0_401
, die Oracle JDK 8u401 bevat. Dit gebrek zou voor AEM Projecten van de Wolk moeten worden met voeten getreden om JDK 11 te gebruiken. Zie Plaatsend de Geweven sectie van de Versie JDKvoor meer details. -
Er zijn enkele extra systeempakketten geïnstalleerd die nodig zijn.
bzip2
unzip
libpng
imagemagick
graphicsmagick
-
Andere pakketten kunnen bij bouwstijltijd zoals die in de sectie wordt beschreven worden geïnstalleerd die de Extra Pakketten van het Systeeminstalleert.
-
Elke bouwstijl loopt in een schone milieu, met de bouwstijlcontainer die geen staat tussen uitvoeringen behoudt.
-
Maven wordt altijd uitgevoerd met de volgende drie opdrachten.
mvn --batch-mode org.apache.maven.plugins:maven-dependency-plugin:3.1.2:resolve-plugins
mvn --batch-mode org.apache.maven.plugins:maven-clean-plugin:3.1.0:clean -Dmaven.clean.failOnError=false
mvn --batch-mode org.jacoco:jacoco-maven-plugin:prepare-agent package
-
Maven wordt op systeemniveau geconfigureerd met een
settings.xml
-bestand dat automatisch de openbare gegevensopslagruimte voor Adoben bevat met een profiel met de naamadobe-public
. (Zie 🔗 voor meer details van de Adobe Openbare Maven Bewaarplaats .)
jacoco-maven-plugin
definieert, moet de gebruikte versie ten minste 0.7.5.201505241946
zijn.Door HTTPS aangebrachte opslagruimten https-maven
Cloud Manager versie 2023.10.0begon een het rollen update aan het bouwstijlmilieu (die met versie 2023.12.0) voltooide, die een update aan Geweven 3.8.8 omvatte. Een belangrijke wijziging die werd aangebracht in Maven 3.8.1 was een verbetering van de beveiliging die bedoeld was om potentiële kwetsbaarheden te beperken. Specifiek, maven maakt nu alle onveilige http://*
spiegels door gebrek onbruikbaar, zoals die in de Gemaakt versienota'sworden geschetst.
Als gevolg van deze beveiligingsuitbreiding kunnen sommige gebruikers problemen ondervinden tijdens de constructiestap, met name wanneer ze artefacten downloaden van Geweven opslagplaatsen die onveilige HTTP-verbindingen gebruiken.
Om ervoor te zorgen dat de bijgewerkte versie probleemloos wordt uitgevoerd, raadt Adobe gebruikers aan hun Geweven opslagplaatsen bij te werken om HTTPS in plaats van HTTP te gebruiken. Deze aanpassing sluit aan op de groeiende verschuiving van de industrie naar veilige communicatieprotocollen en helpt een veilig en betrouwbaar bouwproces in stand te houden.
Een specifieke Java-versie gebruiken using-java-support
In het Cloud Manager-ontwikkelproces wordt standaard gebruikgemaakt van Oracle 8 JDK om projecten te maken, maar AEM Cloud Service-klanten moeten de JDK-versie van Maven voor uitvoering instellen op 11
.
De Maven JDK-versie instellen alternate-maven-jdk-version
Adobe raadt u aan de JDK-versie voor de volledige uitgevoerde Maven in te stellen op 11
in een .cloudmanager/java-version
-bestand.
Hiertoe maakt u een bestand met de naam .cloudmanager/java-version
in de vertakking van de it-opslagruimte die door de pijplijn wordt gebruikt. Bewerk het bestand zodat het alleen de tekst bevat, 11
. Hoewel Cloud Manager ook de waarde 8
accepteert, wordt deze versie niet meer ondersteund voor AEM Cloud Service-projecten. Eventuele andere waarden worden genegeerd. Wanneer 11
wordt opgegeven, wordt Oracle 11 gebruikt en wordt de omgevingsvariabele JAVA_HOME
ingesteld op /usr/lib/jvm/jdk-11.0.22
.
Omgevingsvariabelen - standaard environment-variables
U kunt het noodzakelijk vinden om het bouwstijlproces te variëren dat op informatie over het programma of de pijpleiding wordt gebaseerd.
Als JavaScript bijvoorbeeld tijdens het maken van een product als gulp miniaturen maakt, hebben verschillende miniatuurniveaus de voorkeur voor verschillende omgevingen. Een ontwikkelingsbuild zou een lichtere minificatie kunnen gebruiken in vergelijking met ophaling en productie.
Om dit te steunen, voegt Cloud Manager deze standaardmilieuvariabelen aan de bouwstijlcontainer voor elke uitvoering toe.
CM_BUILD
true
BRANCH
CM_PIPELINE_ID
CM_PIPELINE_NAME
CM_PROGRAM_ID
CM_PROGRAM_NAME
ARTIFACTS_VERSION
CM_AEM_PRODUCT_VERSION
Omgevingsvariabelen - pijpleiding pipeline-variables
Uw bouwstijlproces zou specifieke configuratievariabelen kunnen vereisen die niet in de bewaarplaats van het Git zouden moeten worden opgeslagen. Bovendien, kunt u deze variabelen tussen pijpleidingsuitvoeringen moeten aanpassen gebruikend de zelfde tak.
Zie ook vormen de Variabelen van de Pijpleidingvoor meer informatie.
Extra systeempakketten installeren installing-additional-system-packages
Sommige bouwstijlen vereisen extra systeempakketten om volledig te functioneren. Een build kan bijvoorbeeld een Python- of Ruby-script aanroepen en moet een geschikte taalinterpreter hebben geïnstalleerd. Dit installatieproces kan worden beheerd door exec-maven-plugin
in uw pom.xml
te roepen om APT aan te roepen. Deze uitvoering moet doorgaans worden opgenomen in een Cloud Manager-specifiek Maven-profiel. In dit voorbeeld wordt Python geïnstalleerd.
<profile>
<id>install-python</id>
<activation>
<property>
<name>env.CM_BUILD</name>
</property>
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.6.0</version>
<executions>
<execution>
<id>apt-get-update</id>
<phase>validate</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>apt-get</executable>
<arguments>
<argument>update</argument>
</arguments>
</configuration>
</execution>
<execution>
<id>install-python</id>
<phase>validate</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<executable>apt-get</executable>
<arguments>
<argument>install</argument>
<argument>-y</argument>
<argument>--no-install-recommends</argument>
<argument>python</argument>
</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</profile>
Dezelfde techniek kan worden gebruikt om taalspecifieke pakketten te installeren, bijvoorbeeld met gem
voor RubyGems of pip
voor Python Packages.