Expand my Community achievements bar.

Don’t miss the AEM Skill Exchange in SF on Nov 14—hear from industry leaders, learn best practices, and enhance your AEM strategy with practical tips.
SOLVED

Overwrite Translations in CRX with content-package-maven plugin

Avatar

Level 2

When I add a new translation to the translations file and install the translation appears. When I change the translation and install the existing value is not overwritten. I'm struggling with the plugin's documentation to understand how to change this behaviour: to update an existing node value attribute.

Here's the configuration of the plugin:

          <plugin>

                    <groupId>com.day.jcr.vault</groupId>

                    <artifactId>content-package-maven-plugin</artifactId>

                    <version>0.5.24</version>

                    <extensions>true</extensions>

                    <configuration>

                        <packaging>zip</packaging>

                        <properties>

                            <acHandling>overwrite</acHandling>

                            <granite.suppressSnapshots>true</granite.suppressSnapshots>

                        </properties>

                        <failOnError>true</failOnError>

                        <install>true</install>

                        <verbose>true</verbose>

                        <useProxy>false</useProxy>

                    </configuration>

                </plugin>

<profile>

            <id>auto-install-package</id>

            <build>

                <pluginManagement>

                    <plugins>

                        <plugin>

                            <groupId>com.day.jcr.vault</groupId>

                            <artifactId>content-package-maven-plugin</artifactId>

                            <executions>

                                <execution>

                                    <id>install-package</id>

                                    <goals>

                                        <goal>install</goal>

                                    </goals>

                                    <configuration>

                                        <groupId>${project.groupId}</groupId>

                                        <artifactId>${project.artifactId}</artifactId>

                                        <targetURL>${cq.url}/crx/packmgr/service.jsp</targetURL>

                                        <userId>${cq.user}</userId>

                                        <password>${cq.password}</password>

                                    </configuration>

                                </execution>

                            </executions>

                        </plugin>

                    </plugins>

                </pluginManagement>

            </build>

        </profile>

The command I use to deploy is: mvn clean install -Pauto-install-package

1 Accepted Solution

Avatar

Correct answer by
Employee Advisor

I believe you need to use one of the following import modes depending on the requirement:

  • Replace: Content in the package that is not in the repository is added to the repository. Content in the repository is replaced with matching content in the package. Content is removed from the repository when it does not exist in the package.
  • Update: Content in the package that is not in the repository is added to the repository. Content in the repository is replaced with matching content in the package. Existing content gets removed from the repository. 

Check "Using Filters" at [1] for more details.

[1] Managing Packages Using Maven

View solution in original post

7 Replies

Avatar

Employee Advisor

have you used the AEM archetype? Which version?

Jörg

Avatar

Level 2

I don't believe the codebase is using any archtetype.

Avatar

Correct answer by
Employee Advisor

I believe you need to use one of the following import modes depending on the requirement:

  • Replace: Content in the package that is not in the repository is added to the repository. Content in the repository is replaced with matching content in the package. Content is removed from the repository when it does not exist in the package.
  • Update: Content in the package that is not in the repository is added to the repository. Content in the repository is replaced with matching content in the package. Existing content gets removed from the repository. 

Check "Using Filters" at [1] for more details.

[1] Managing Packages Using Maven

Avatar

Level 2

Yes I saw that and tried putting those settings in a few places but on each occassion it failed to have the desired impact.

Avatar

Employee Advisor

Can you share a minimal content-package where you can replicate this behavior? I am especially interested in the META-INF/vault/filter.xml file and the content in the respective path of the content-package.

Avatar

Level 2

It doesn't work at all on publish instances. It causes our deploys to fail with internal server error and no clues in the logs at all. Even just adding the following causes the error:

Avatar

Level 2

Our full parent POM looks like this: