Maven 无法找到 AEM 原型(prototype)

标签 maven aem

我已经开始解决这个问题很久了...我正在处理 Adob​​e wknd 项目,但我无法通过这个命令,大部分工作都是基于它构建的

mvn archetype:generate \
  -DarchetypeGroupId=com.adobe.granite.archetypes \
  -DarchetypeArtifactId=aem-project-archetype \
  -DarchetypeVersion=18

我已经在 VPN 上和关闭下尝试过,使用所有可能的代理配置,但仍然出现相同的错误

Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.0:generate (default-cli) on project standalone-pom: The desired archetype does not exist (com.adobe.granite.archetypes:aem-project-archetype:18)

多次删除和重新安装。不同的网络和代理配置以及 Mac 操作系统。

mvn -v 返回

Maven home: /Users/dmills/Applications/apache-maven-3.6.1
Java version: 1.8.0_212, vendor: Oracle Corporation, runtime: /Library/Java/JavaVirtualMachines/jdk1.8.0_212.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "mac os x", version: "10.14.5", arch: "x86_64", family: "mac"

得到这个错误

Failed to execute goal org.apache.maven.plugins:maven-archetype-plugin:3.1.0:generate (default-cli) on project standalone-pom: The desired archetype does not exist (com.adobe.granite.archetypes:aem-project-archetype:18)

构建失败,我现在不知道去哪里

最佳答案

该错误表明没有配置包含您要使用的原型(prototype)的 Maven 存储库。默认的 Maven 安装不知道包含原型(prototype)的 Adob​​e 存储库。您必须配置存储库。

通常,您应该为您的 AEM 项目使用以下存储库:

http://repo.adobe.com/nexus/content/groups/public

此存储库包含您要使用的原型(prototype):

https://repo.adobe.com/nexus/content/groups/public/com/adobe/granite/archetypes/aem-project-archetype/18/

根据文档(参见下面的链接),这将是一个最小的 Maven settings.xml,它允许您使用 AEM Maven 原型(prototype):

<settings 
  xmlns="http://maven.apache.org/SETTINGS/1.0.0"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
  https://maven.apache.org/xsd/settings-1.0.0.xsd">

  <profiles>
    <profile>
      <id>adobe-public</id>
      <activation>
        <activeByDefault>true</activeByDefault>
      </activation>
      <properties>
        <releaseRepository-Id>adobe-public-releases</releaseRepository-Id>
        <releaseRepository-Name>Adobe Public Releases</releaseRepository-Name>
        <releaseRepository-URL>http://repo.adobe.com/nexus/content/groups/public</releaseRepository-URL>
      </properties>
      <repositories>
        <repository>
          <id>adobe-public-releases</id>
          <name>Adobe Basel Public Repository</name>
          <url>http://repo.adobe.com/nexus/content/groups/public</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </repository>
      </repositories>
      <pluginRepositories>
        <pluginRepository>
          <id>adobe-public-releases</id>
          <name>Adobe Basel Public Repository</name>
          <url>http://repo.adobe.com/nexus/content/groups/public</url>
          <releases>
            <enabled>true</enabled>
            <updatePolicy>never</updatePolicy>
          </releases>
          <snapshots>
            <enabled>false</enabled>
          </snapshots>
        </pluginRepository>
      </pluginRepositories>
    </profile>
  </profiles>
</settings> 

注意:我为 adobe-public 配置文件将 activeByDefault 设置为 true。这样您就不需要在命令行上传递 -Padobe-public 来激活配置文件。

现在,如果您运行以下命令,您应该能够使用原型(prototype):

mvn archetype:generate \
  -DarchetypeGroupId=com.adobe.granite.archetypes \
  -DarchetypeArtifactId=aem-project-archetype \
  -DarchetypeVersion=18

链接:

https://helpx.adobe.com/experience-manager/kb/SetUpTheAdobeMavenRepository.html

关于Maven 无法找到 AEM 原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56298294/

相关文章:

scala - 使用带有自定义对象数组的数据集时 Flink 中的 NoSuchMethod 异常

aem - 使用 sightly 从 AEM 6.4 中的页面属性检索缩略图 URL

osgi - @Service用于在CQ中创建服务,那么BundleContext.registerService方法有什么用呢?

java - 用于包装请求正文的 Sling Filter

aem - CQ API 中是否有任何内容允许您从 cq :component? 创建节点

java - 如何从不是使用 Maven 构建的 jar 中排除作为 Maven 依赖项的类?

Maven Shade插件的Spring 3 NamespaceHandler问题

java - 在maven结构中生成java源的脚本放在哪里?

node.js - Maven 前端构建在生成源阶段运行两次

java - 如何将 AEM 标签导出到 Excel