自定义演示未加载到 Magnolia CMS
Customized Demo is not loading to Magnolia CMS
我已关注 Travel Demo - for developers 并成功启动了 Travel Demo。现在我正在尝试在 magnolia-travel-tours 上自定义模板 (ftl)。
我注意到,对模板所做的更改未被采纳。看起来,由于我在将其作为我的 Web 应用程序的依赖项时没有指定版本号,因此在我构建 Magnolia Web 应用程序时正在下载演示的新副本。
这就是我放置依赖项的方式,
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.esharps.projects</groupId>
<artifactId>coreCMSProject</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>coreCMSProject-webapp</artifactId>
<name>coreCMSProject: webapp</name>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>info.magnolia</groupId>
<artifactId>magnolia-empty-webapp</artifactId>
<type>pom</type>
</dependency>
<dependency>
<groupId>info.magnolia</groupId>
<artifactId>magnolia-empty-webapp</artifactId>
<type>war</type>
</dependency>
<dependency>
<groupId>info.magnolia.demo</groupId>
<artifactId>magnolia-travel-tours</artifactId>
</dependency>
如果我的理解有误,请指正。
现在我所做的是,我为 magnolia-travel-tours 提供了版本号和组 ID,并重建了 magnolia-travel-tours(必须指定 magnolia-travel-demo 模块的版本号)并将该特定版本包含在我的网络应用程序中
pom.xml 的 magnolia-travel-tours
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>info.magnolia.demo</groupId>
<artifactId>magnolia-travel-demo-parent</artifactId>
<version>0.11-SNAPSHOT</version>
<relativePath>../magnolia-travel-demo-parent/pom.xml</relativePath>
</parent>
**<groupId>info.magnolia.demo</groupId>**
<artifactId>magnolia-travel-tours</artifactId>
<packaging>jar</packaging>
**<version>0.11-CUSTOM</version>**
<name>Magnolia Travel Tours Module</name>
<description>Magnolia module showcasing a travel-tours website</description>
<properties>
<cloverCoverageThreshold>37</cloverCoverageThreshold>
</properties>
<dependencies>
<!-- Dependencies to travel-demo -->
<dependency>
<groupId>info.magnolia.demo</groupId>
<artifactId>magnolia-travel-demo</artifactId>
<version>**0.11-SNAPSHOT**</version>
</dependency>
现在的问题是,当我尝试启动网络应用程序时出现以下错误。
2016-04-22 02:33:54,906 ERROR info.magnolia.init.MagnoliaServletContextListener : Oops, Magnolia could not be started
info.magnolia.module.model.reader.ModuleDependencyException: The following exceptions were found while checking Magnolia modules dependencies (i.e. those in META-INF/magnolia/my-module.xml):
Module Magnolia Travel Tours Module (version 0.11.0-CUSTOM) is dependent on travel-demo (version 0.11-CUSTOM), but Magnolia Travel Demo Module (version 0.10.0) is currently installed.
Module Magnolia Travel Tours Module (version 0.11.0-CUSTOM) is dependent on mtk (version 0.10/*), but Magnolia Templating Kit (version 0.9.0) is currently installed.
info.magnolia.module.model.reader.ModuleDependencyException: The following exceptions were found while checking Magnolia modules dependencies (i.e. those in META-INF/magnolia/my-module.xml):
我该如何自定义旅行演示?
您似乎在尝试自定义 travel-demo 而不更改您正在部署的网络应用程序中的依赖项。我假设您正在使用 IDE。然后我会检查我想部署的 webapp,然后在它的 pom 中,我会更改 travel-demo 依赖项,它会指向我的自定义 travel-demo。你这里的错误是你导入了 empty-webapp 但它当时已经构建,所以你的更改当时没有被接受。
请看
<!-- 1. Import dependency management from one of our parent poms (bundles or packs) -->
<dependency>
<!-- CE bundle -->
<groupId>info.magnolia.bundle</groupId>
<artifactId>magnolia-bundle-parent</artifactId>
<version>${magnoliaVersion}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!-- 2. Own modules -->
<dependency>
<groupId>info.magnolia.dev</groupId>
<artifactId>magnolia-dev-webapp</artifactId>
<version>${project.version}</version>
</dependency>
<!-- 3. Version overrides for modules in this project -->
<!--<dependency>-->
<!--<groupId>info.magnolia.contacts</groupId>-->
<!--<artifactId>magnolia-contacts</artifactId>-->
<!--<version>${contactsVersion}</version>-->
<!--</dependency>-->
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<!-- animal-sniffer doesn't support java 1.8 yet -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
基本上这个开发项目包含一个您可以部署的网络应用程序,您可以在那里更改任何依赖项。它有深入的评论,因此使用起来很简单。然后最后,你必须部署开发项目的 war.
干杯,
我已关注 Travel Demo - for developers 并成功启动了 Travel Demo。现在我正在尝试在 magnolia-travel-tours 上自定义模板 (ftl)。
我注意到,对模板所做的更改未被采纳。看起来,由于我在将其作为我的 Web 应用程序的依赖项时没有指定版本号,因此在我构建 Magnolia Web 应用程序时正在下载演示的新副本。 这就是我放置依赖项的方式,
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>com.esharps.projects</groupId>
<artifactId>coreCMSProject</artifactId>
<version>1.0-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
<artifactId>coreCMSProject-webapp</artifactId>
<name>coreCMSProject: webapp</name>
<packaging>war</packaging>
<dependencies>
<dependency>
<groupId>info.magnolia</groupId>
<artifactId>magnolia-empty-webapp</artifactId>
<type>pom</type>
</dependency>
<dependency>
<groupId>info.magnolia</groupId>
<artifactId>magnolia-empty-webapp</artifactId>
<type>war</type>
</dependency>
<dependency>
<groupId>info.magnolia.demo</groupId>
<artifactId>magnolia-travel-tours</artifactId>
</dependency>
如果我的理解有误,请指正。
现在我所做的是,我为 magnolia-travel-tours 提供了版本号和组 ID,并重建了 magnolia-travel-tours(必须指定 magnolia-travel-demo 模块的版本号)并将该特定版本包含在我的网络应用程序中
pom.xml 的 magnolia-travel-tours
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>info.magnolia.demo</groupId>
<artifactId>magnolia-travel-demo-parent</artifactId>
<version>0.11-SNAPSHOT</version>
<relativePath>../magnolia-travel-demo-parent/pom.xml</relativePath>
</parent>
**<groupId>info.magnolia.demo</groupId>**
<artifactId>magnolia-travel-tours</artifactId>
<packaging>jar</packaging>
**<version>0.11-CUSTOM</version>**
<name>Magnolia Travel Tours Module</name>
<description>Magnolia module showcasing a travel-tours website</description>
<properties>
<cloverCoverageThreshold>37</cloverCoverageThreshold>
</properties>
<dependencies>
<!-- Dependencies to travel-demo -->
<dependency>
<groupId>info.magnolia.demo</groupId>
<artifactId>magnolia-travel-demo</artifactId>
<version>**0.11-SNAPSHOT**</version>
</dependency>
现在的问题是,当我尝试启动网络应用程序时出现以下错误。
2016-04-22 02:33:54,906 ERROR info.magnolia.init.MagnoliaServletContextListener : Oops, Magnolia could not be started
info.magnolia.module.model.reader.ModuleDependencyException: The following exceptions were found while checking Magnolia modules dependencies (i.e. those in META-INF/magnolia/my-module.xml):
Module Magnolia Travel Tours Module (version 0.11.0-CUSTOM) is dependent on travel-demo (version 0.11-CUSTOM), but Magnolia Travel Demo Module (version 0.10.0) is currently installed.
Module Magnolia Travel Tours Module (version 0.11.0-CUSTOM) is dependent on mtk (version 0.10/*), but Magnolia Templating Kit (version 0.9.0) is currently installed.
info.magnolia.module.model.reader.ModuleDependencyException: The following exceptions were found while checking Magnolia modules dependencies (i.e. those in META-INF/magnolia/my-module.xml):
我该如何自定义旅行演示?
您似乎在尝试自定义 travel-demo 而不更改您正在部署的网络应用程序中的依赖项。我假设您正在使用 IDE。然后我会检查我想部署的 webapp,然后在它的 pom 中,我会更改 travel-demo 依赖项,它会指向我的自定义 travel-demo。你这里的错误是你导入了 empty-webapp 但它当时已经构建,所以你的更改当时没有被接受。
请看
<!-- 1. Import dependency management from one of our parent poms (bundles or packs) -->
<dependency>
<!-- CE bundle -->
<groupId>info.magnolia.bundle</groupId>
<artifactId>magnolia-bundle-parent</artifactId>
<version>${magnoliaVersion}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!-- 2. Own modules -->
<dependency>
<groupId>info.magnolia.dev</groupId>
<artifactId>magnolia-dev-webapp</artifactId>
<version>${project.version}</version>
</dependency>
<!-- 3. Version overrides for modules in this project -->
<!--<dependency>-->
<!--<groupId>info.magnolia.contacts</groupId>-->
<!--<artifactId>magnolia-contacts</artifactId>-->
<!--<version>${contactsVersion}</version>-->
<!--</dependency>-->
</dependencies>
</dependencyManagement>
<build>
<pluginManagement>
<plugins>
<!-- animal-sniffer doesn't support java 1.8 yet -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>animal-sniffer-maven-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</project>
基本上这个开发项目包含一个您可以部署的网络应用程序,您可以在那里更改任何依赖项。它有深入的评论,因此使用起来很简单。然后最后,你必须部署开发项目的 war.
干杯,