Saiba mais sobre o ambiente de criação especializado no qual os usuários do Cloud Manager criam e testam seus códigos.
Os ambientes de criação do Cloud Manager têm os seguintes atributos.
JAVA_HOME
está definida como /usr/lib/jvm/jdk1.8.0_202
, que contém o Oracle JDK 8u202. Consulte a seção Versão alternativa do JDK de execução do Maven para obter mais detalhes.bzip2
unzip
libpng
imagemagick
graphicsmagick
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
settings.xml
que inclui automaticamente o repositório público de artefatos da Adobe usando um perfil chamado adobe-public
.
Embora o Cloud Manager não defina uma versão específica do jacoco-maven-plugin
, a versão usada deve ser pelo menos a 0.7.5.201505241946
.
Consulte os seguintes recursos adicionais para saber como usar as APIs do Cloud Manager:
Por padrão, os projetos são criados pelo processo de compilação do Cloud Manager usando o Oracle 8 JDK. Os clientes que desejam usar um JDK alternativo têm duas opções.
O plug-in Maven Toolchains permite que os projetos selecionem um JDK específico (ou conjunto de ferramentas) a ser usado no contexto de plug-ins do Maven com reconhecimento de conjuntos de ferramentas. Isso é feito no arquivo pom.xml
do projeto especificando um fornecedor e o número da versão. Um exemplo de seção do arquivo pom.xml
é:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-toolchains-plugin</artifactId>
<version>1.1</version>
<executions>
<execution>
<goals>
<goal>toolchain</goal>
</goals>
</execution>
</executions>
<configuration>
<toolchains>
<jdk>
<version>11</version>
<vendor>oracle</vendor>
</jdk>
</toolchains>
</configuration>
</plugin>
Isso fará com que todos os plug-ins do Maven com reconhecimento de conjuntos de ferramentas usem o JDK do Oracle 11.
Ao usar esse método, o próprio Maven ainda é executado usando o JDK padrão (Oracle 8) e a variável de ambiente JAVA_HOME
não é alterada. Portanto, verificar ou impor a versão do Java por meio de plug-ins como o Apache Maven Enforcer não terá resultado, e esses plug-ins não devem ser usados.
As combinações de fornecedor/versão disponíveis no momento são:
Fornecedor | Versão |
---|---|
Oracle | 1.8 |
Oracle | 1.11 |
Oracle | 11 |
sun | 1.8 |
sun | 1.11 |
sun | 11 |
A partir de abril de 2022, o JDK do Oracle será o JDK padrão para o desenvolvimento e a operação de aplicativos do AEM. O processo de criação do Cloud Manager mudará automaticamente para o uso do JDK do Oracle, mesmo se uma opção alternativa for explicitamente selecionada no conjunto de ferramentas do Maven. Consulte as notas de versão de abril para obter mais detalhes.
Também é possível selecionar o Oracle 8 ou Oracle 11 como o JDK para toda a execução do Maven. Diferentemente das opções de conjuntos de ferramentas, isso altera o JDK usado para todos os plug-ins, a menos que a configuração de conjuntos de ferramentas também esteja definida. Nesse caso, a configuração de conjuntos de ferramentas ainda será aplicada para plug-ins do Maven com reconhecimento de conjuntos de ferramentas. Como resultado, a verificação e a implementação da versão do Java usando o Plug-in executor Apache Maven funcionarão.
Para fazer isso, crie um arquivo chamado .cloudmanager/java-version
na ramificação do repositório Git usada pelo pipeline. Esse arquivo pode ter o conteúdo 11
ou 8
. Qualquer outro valor é ignorado. Se 11
for especificado, o Oracle 11 será usado e a variável de ambiente JAVA_HOME
será definida como /usr/lib/jvm/jdk-11.0.2
. Se 8
for especificado, o Oracle 8 será usado e a variável de ambiente JAVA_HOME
será definida como /usr/lib/jvm/jdk1.8.0_202
.
Em alguns casos, pode ser necessário variar o processo de criação com base nas informações sobre o programa ou pipeline.
Por exemplo, se a minificação do JavaScript em tempo de criação for feita por meio de uma ferramenta como o gulp, talvez seja desejável usar um nível de minificação diferente ao criar para um ambiente de desenvolvimento, em vez de criar para preparo e produção.
Para ser compatível com isso, o Cloud Manager adiciona variáveis de ambiente padrão ao contêiner de criação para cada execução.
Nome da variável | Descrição |
---|---|
CM_BUILD |
Sempre definida como true |
BRANCH |
A ramificação configurada para a execução |
CM_PIPELINE_ID |
O identificador numérico do pipeline |
CM_PIPELINE_NAME |
O nome do pipeline |
CM_PROGRAM_ID |
O identificador numérico do programa |
CM_PROGRAM_NAME |
O nome do programa |
ARTIFACTS_VERSION |
Para um pipeline de preparo ou produção, a versão sintética gerada pelo Cloud Manager |
As variáveis de ambiente padrão podem ser usadas em vários lugares.
As variáveis e os segredos comuns do ambiente podem ser usados nos ambientes de criação, visualização e publicação.
Somente variáveis de ambiente comuns podem ser usadas com o Dispatcher. Segredos não podem ser usados.
No entanto, as variáveis de ambiente não podem ser usadas em diretivas IfDefine
.
Você deve validar o uso das variáveis de ambiente com o Dispatcher localmente antes da implantação.
As variáveis e os segredos comuns do ambiente podem ser usados nas configurações do OSGi.
Em alguns casos, o processo de criação pode depender de variáveis de configuração específicas que seriam inadequadas para colocar no repositório Git ou precisariam variar entre execuções de pipeline usando a mesma ramificação.
O Cloud Manager permite que essas variáveis sejam configuradas por meio da API do Cloud Manager ou da CLI do Cloud Manager por pipeline. As variáveis podem ser armazenadas como texto simples ou criptografadas em repouso. Em ambos os casos, as variáveis são disponibilizadas no ambiente de criação como uma variável de ambiente que pode ser referenciada de dentro do arquivo pom.xml
ou de outros scripts de criação.
Para definir uma variável usando a CLI, execute um comando semelhante ao seguinte.
$ aio cloudmanager:set-pipeline-variables PIPELINEID --variable MY_CUSTOM_VARIABLE test
As variáveis atuais podem ser listadas usando um comando semelhante ao seguinte.
$ aio cloudmanager:list-pipeline-variables PIPELINEID
As variáveis devem atender a determinadas limitações.
_
).
Quando usado dentro de um arquivo pom.xml
do Maven, geralmente é útil mapear essas variáveis para propriedades do Maven usando uma sintaxe semelhante à seguinte.
<profile>
<id>cmBuild</id>
<activation>
<property>
<name>env.CM_BUILD</name>
</property>
</activation>
<properties>
<my.custom.property>${env.MY_CUSTOM_VARIABLE}</my.custom.property>
</properties>
</profile>
Para funcionar plenamente, algumas builds exigem a instalação de pacotes de sistema adicionais. Por exemplo, uma build pode invocar um script do Python ou Ruby e, como resultado, precisa ter um interpretador de linguagem adequado instalado. Isso pode ser feito chamando o exec-maven-plugin
para invocar o APT. Essa execução geralmente deve ser encapsulada em um perfil do Maven específico do Cloud Manager. Por exemplo, para instalar o Python:
<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>
Essa mesma técnica pode ser usada para instalar pacotes específicos de linguagem, ou seja, usando gem
para RubyGems ou pip
pacotes do Python.
Instalar um pacote de sistema dessa maneira não o instala no ambiente de tempo de execução usado para executar o Adobe Experience Manager. Se a instalação de um pacote de sistema no ambiente AEM for necessária, entre em contato com o representante da Adobe.