Coder Social home page Coder Social logo

adobe / aem-cif-guides-venia Goto Github PK

View Code? Open in Web Editor NEW
36.0 25.0 33.0 34.8 MB

AEM CIF Venia Project

License: Apache License 2.0

Java 13.50% HTML 3.19% JavaScript 72.07% Less 0.20% SCSS 10.51% Dockerfile 0.30% Shell 0.16% CSS 0.06%
aem aem-as-a-service cif magento magento2 adobe-experience-manager core-components

aem-cif-guides-venia's Introduction

CircleCI GitHub

AEM Guides - CIF Venia Project

This project contains the AEM CIF Venia reference site. It demonstrates the usage of CIF Core Components for Adobe Experience Manager (AEM). It is intended as a best-practice set of examples as well as a potential starting point to develop your own functionality.

The project can be used in two variants:

  • AEM as a Cloud Service deployments
  • AEM on-prem or AEM hosted by Adobe Managed Services deployments

This project was generated using the aem-project-archetype.

Variants

AEM as a Cloud Service

The default variant of the project is built and deployed on AEM as a Cloud Service. It requires an AEM as a Cloud Service with entitlement for the Commerce Add-On. The Commerce Add-On provides the commerce authoring tooling like product & category pickers or product search for authors it also manages the backend connection to Magento (or alternative commerce system) via GraphQL. Once provisioned it is deployed on AEM as a Cloud Service environments automatically.

The deployment on AEM as a Cloud Service happens via Cloud Manager and this project can be transferred into the Cloud Manager git repository.

For local development an AEM as a Cloud Service SDK with the Commerce Add-On installed is required. Both can be downloaded via the Software Distribution channel. See Set up local AEM Runtime for instructions. For build and deployment steps see below.

AEM 6.5

In this variant the project is built and deployed on AEM 6.5 hosted by Adobe Managed Services or self-hosted. The minimum requirements are AEM 6.5.7 with the Commerce Add-On installed. The AEM Commerce Add-On for AEM 6.5 is also available on the Software Distribution portal.

The CIF Core Components and the Commerce Add-On connect to a Magento (or alternative) via GraphQL. This connection has to be configured in the com.adobe.cq.commerce.graphql.client.impl.GraphqlClientImpl-default.config config. A reference is included in the project template. Consult documentation for detailed configuation steps.

The project deployment can be done via Cloud Manager or AEM package install. For project build and deployment use the classic profile, see steps below.

Branching Strategy

This project uses a dev branch for the development cycle between releases. On dev there can be dependencies to snapshot versions of the CIF Core components project. CircleCI will provide the snapshot dependencies including the react-components package on all branches except main.

After a release of the required dependencies, all dependencies have to be updated to release versions and the current state of the dev branch is merged to main. All releases of this project will be done from the main branch. This guarantees that the state on main can always be built and installed as-is.

Modules

The main parts of the template are:

  • core: Java bundle containing all core functionality like OSGi services, listeners or schedulers, as well as component-related Java code such as servlets or request filters.
  • ui.apps: contains the /apps (and /etc) parts of the project, ie JS&CSS clientlibs, components, templates and runmode specific configs
  • ui.content: contains sample content using the components from the ui.apps
  • ui.tests: Java bundle containing JUnit tests that are executed server-side. This bundle is not to be deployed onto production.
  • ui.launcher: contains glue code that deploys the ui.tests bundle (and dependent bundles) to the server and triggers the remote JUnit execution
  • ui.frontend: an optional dedicated front-end build mechanism (Angular, React or general Webpack project)

Best Practice

Component Customization

The Venia reference project code demonstrates how CIF core component can be adopted, customized, and extended for a project. The project includes an extended product teaser component example called MyProductTeaser. It demonstrates the CIF core components customization options by using an extended Sling MyProductTeaser model and a proxy component overlay.

Individual product and category page URLs

This project includes sample configurations to demonstrate the usage of custom URLs for product and category pages. This allows each project to setup individual URL patterns for product and category pages according to their SEO needs. A combination of UrlProvider config with Sling Mappings is used.

This configuration must be adjusted with the external domain used by the project. The Sling Mappings are working based on the hostname and domain. Therefore this configuration is disabled by default and must be enabled before deployment. To do so rename the Sling Mapping hostname.adobeaemcloud.com folder in ui.content/src/main/content/jcr_root/etc/map.publish/https according to the used domain name and enable this config by adding resource.resolver.map.location="/etc/map.publish" to the JcrResourceResolver config.

For detailed configuration options see Configuring and customizing product and category pages URLs in the AEM Content & Commerce and the AEM Resource Mapping documentation.

Component Caching

CIF Core Components already have built-in support for caching GraphQL responses for individual components. This feature can be used to reduce the number of GraphQL backend calls by a large factor. An effective caching can be achieved especially for repeating queries like retrieving the category tree for a navigation component or fetching all the available aggregations/facets values displayed on the product search and category pages.

How to build

To build all the modules, run in the project root directory the following command with Maven 3:

mvn clean install

This will build only the artefacts for an AEM as a Cloud Service target. To build the artefacts for AEM on-premise as target use the -Pclassic profile:

mvn clean install -Pclassic

If you have a running AEM instance you can build and package the whole project and deploy into AEM with

mvn clean install -PautoInstallSinglePackage

Or to deploy it to a publish instance, run

mvn clean install -PautoInstallSinglePackagePublish

Or to deploy only the bundle to the author, run

mvn clean install -PautoInstallBundle

The classic profile can be combined with either of the examples mentioned above.

Client-side Components

The client-side CIF core components access the Magento GraphQL endpoint directly, so all calls have to either be served from the same endpoint as AEM or served via a proxy that adds CORS headers.

  • For AEMaaCS installations this is pre-configured as part of the CIF onboarding.
  • For AEM on-prem installations, please add a proxy to your dispatcher configuration. You can find an example of dispatcher configuration in the CIF Core Components project.
  • For local development, you can start a proxy using the following command. The GraphQL endpoint is then available at http://localhost:3002/graphql.
npx local-cors-proxy --proxyUrl https://my.magento.cloud --port 3002 --proxyPartial ''

Testing

There are two levels of testing contained in the project:

Unit tests

This show-cases classic unit testing of the code contained in the bundle. To test, execute:

mvn clean test

Integration tests

This allows running integration tests that exercise the capabilities of AEM via HTTP calls to its API. To run the integration tests, use one of the following two commands depending on your project variant.

For AEM as a Cloud project:

mvn clean verify -Plocal,cloud

For AEM classic project:

mvn clean verify -Plocal,classic

Test classes must be saved in the src/main/java directory (or any of its subdirectories), and must be contained in files matching the pattern *IT.java.

The configuration provides sensible defaults for a typical local installation of AEM. If you want to point the integration tests to different AEM author and publish instances, you can use the following system properties via Maven's -D flag.

Property Description Default value
it.author.url URL of the author instance http://localhost:4502
it.author.user Admin user for the author instance admin
it.author.password Password of the admin user for the author instance admin
it.publish.url URL of the publish instance http://localhost:4503
it.publish.user Admin user for the publish instance admin
it.publish.password Password of the admin user for the publish instance admin

The integration tests in this archetype use the AEM Testing Clients and showcase some recommended best practices to be put in use when writing integration tests for AEM.

ClientLibs

The frontend module is made available using an AEM ClientLib. When executing the NPM build script, the app is built and the aem-clientlib-generator package takes the resulting build output and transforms it into such a ClientLib.

A ClientLib will consist of the following files and directories:

  • css/: CSS files which can be requested in the HTML
  • css.txt (tells AEM the order and names of files in css/ so they can be merged)
  • js/: JavaScript files which can be requested in the HTML
  • js.txt (tells AEM the order and names of files in js/ so they can be merged
  • resources/: Source maps, non-entrypoint code chunks (resulting from code splitting), static assets (e.g. icons), etc.

Maven settings

The project comes with the auto-public repository configured. To set up the repository in your Maven settings, refer to:

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

Releases

The Venia demo is only released on Github but not on Maven Central like other projects like the CIF components. To perform a release, we use a dedicated profile to make sure all modules versions are updated:

mvn release:prepare release:clean -Pclassic

Releases must be done on the main branch.

Contributing

Contributions are welcomed! Read the Contributing Guide for more information.

Licensing

This project is licensed under the Apache V2 License. See LICENSE for more information.

aem-cif-guides-venia's People

Contributors

alkim91 avatar alwinjoseph02 avatar buuhuu avatar cjelger avatar dplaton avatar hbacila avatar herzog31 avatar hollywoodtonight avatar josh-hadley avatar kwin avatar laurentiumagureanu avatar lsantha avatar mhaack avatar nettree avatar zacheusz avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

aem-cif-guides-venia's Issues

Build and deploy just the Core OSGi Bundle

User Story

As a developer I'd like to deploy changes made to the core OSGi bundle directly to an AEM environment using the profile autoInstallBundle but not build the entire project.

Description & Motivation

It is time consuming to build the entire project (including the ui.frontend module) every time, especially if changes are only in the bundle.

If I run the command mvn clean install -PautoInstallBundle,cloud from within the core folder:

I get the following message:

[INFO] --- maven-install-plugin:2.5.2:install (default-install) @ venia.core ---
[INFO] No primary artifact to install, installing attached artifacts instead.
[INFO] Installing /Users/Documents/code/aem-cif-guides-venia/core/pom.xml to /Users/.m2/repository/com/venia/venia.core/2020.8.15-SNAPSHOT/venia.core-2020.8.15-SNAPSHOT.pom
[INFO] Installing /Users/Documents/code/aem-cif-guides-venia/core/target/venia.core-2020.8.15-SNAPSHOT-cloud.jar to /Users/.m2/repository/com/venia/venia.core/2020.8.15-SNAPSHOT/venia.core-2020.8.15-SNAPSHOT-cloud.jar
[INFO] 
[INFO] --- sling-maven-plugin:2.4.0:install (install-bundle) @ venia.core ---
[INFO] /Users/Documents/code/aem-cif-guides-venia/core/target/venia.core-2020.8.15-SNAPSHOT.jar does not exist, no uploading

I can run the same command from the root of the project and it works, but then the entire project gets built anyway.

Deliverables

Provide instructions and/or build parameters to build and deploy just the core bundle without the rest of the project.

Verification Steps

  1. Clone the venia repo
  2. Build and deploy the entire project from the root (standard)
  3. Make a change in the Core Java code
  4. Navigate to aem-cif-guides-venia/core
  5. Run the command mvn clean install -PautoInstallBundle,cloud

Frontend Maven Plugin Error during code deployment in Windows

Expected Behaviour

The code build should be SUCCESS

Actual Behaviour

Venia - UI Frontend module is failing with errors

Steps to Reproduce

    1.  Clone the Venia Project Codebase
    2.  Run the command **mvn clean install** on the project root directory.
    3.  UI Frontend module gets failed with the following error:         

Error1

    4.  The error that caused to fail the frontend module is **[ERROR] 'rm' is not recognized as an internal or external 
         command**

Error2

    5. The command that fails is the **i18n:extract-compile** build script from package.json
    "i18n:extract-compile": "formatjs extract --out-file i18n/__temp.json 'src/**/*.js' && formatjs compile --ast --out-file 
     i18n/en.json i18n/__temp.json && **rm i18n/__temp.json**"

    6. When debugged the 'rm' command error, a few articles mention about using either 'del' or 'rd' command in place of rm.
    Reference1 - 

ArticleRef1

   Reference2 -
   https://reactgo.com/rm-command-not-recognized/

ArticleReference

    7. If we update the command with 'del' or 'rd' we get the below error:

Error3

Windows Platform

Sample Code that illustrates the problem

Attached the screenshots along with the steps for reference.

Hi @mhaack,
Kindly help to resolve this issue.

Best Regards,
Arpitha

Incorrect product @id in data layer for cif events

Expected Behaviour

When cif:addToCart or cif:addToWishList events are triggered in the data layer, they should produce event.message.eventInfo:

{
    "@id": "product-363db96fd9",
    "xdm:SKU": "VP09-KH-M",
    "xdm:quantity": "1"
}

The @id can then be used to find the product component in the window.adobeDataLayer.getState("component."+event.message.eventInfo["@id"]) which should produce:

{
    "xdm:currencyCode": "USD",
    "xdm:categories": ["categories array here"],
    "xdm:assets": ["asset array here"],
    "xdm:SKU": "VP09",
    "xdm:listPrice": 78,
    "dc:description": "<p>The Lenora Crochet Shorts are perfect for those days when the weather dictates your wardrobe options. The good news is you can keep cool and still look good. These cotton shorts have got you covered. </p><p>Features:</p><ul><li>Elastic waist </li><li>Drawstring waist</li><li>Sit just below the waist</li><li>4&quot; inseam</li><li>Hand wash, line dry</li></ul>",
    "dc:title": "Lenora Crochet Shorts",
    "@type": "venia/components/commerce/product",
    "parentId": "page-f9dfabef95"
}

Actual Behaviour

The @id produced by event.message.eventInfo is not the same id that's in the fullstate, which makes it very difficult to get product information of the triggered event. Example:

  • event.message.eventInfo["@id"] = product-363db96fd9
  • fullstate component.product id = product-4e2b208d40

Here's a full cif:addToWishList event:

{
    "message": {
        "event": "cif:addToWishList",
        "eventInfo": {
            "@id": "product-363db96fd9",
            "xdm:SKU": "VP09-KH-M",
            "xdm:quantity": "1"
        }
    },
    "beforeState": {},
    "afterState": {},
    "fullState": {
        "page": {
            "page-f9dfabef95": {
                "@type": "core/wcm/components/page/v2/page",
                "repo:modifyDate": "2022-02-23T19:04:48Z",
                "dc:title": "Venia Demo Store - Product page",
                "xdm:template": "/conf/venia/settings/wcm/templates/product-page",
                "xdm:language": "en",
                "xdm:tags": [],
                "repo:path": "/content/venia/us/en/products/product-page.html"
            }
        },
        "component": {
            "navigation-29eb2932ca": {
                "@type": "core/wcm/components/navigation/v1/navigation",
                "parentId": "page-f9dfabef95"
            },
            "searchbar-220bd1c383": {
                "@type": "venia/components/commerce/searchbar",
                "parentId": "page-f9dfabef95"
            },
            "breadcrumb-9a2f8da940": {
                "repo:modifyDate": "2020-08-17T14:22:56Z",
                "@type": "venia/components/commerce/breadcrumb",
                "parentId": "page-f9dfabef95"
            },
            "breadcrumb-9a2f8da940-item-88fb9dce60": {
                "@type": "venia/components/commerce/breadcrumb/item",
                "repo:modifyDate": "2022-02-23T19:04:48Z",
                "dc:title": "Home",
                "xdm:linkURL": "/content/venia/us/en.html",
                "parentId": "breadcrumb-9a2f8da940"
            },
            "breadcrumb-9a2f8da940-item-bc0e6fdec7": {
                "dc:title": "Bottoms",
                "xdm:linkURL": "/content/venia/us/en/products/category-page.html/venia-bottoms.html",
                "repo:modifyDate": "2022-02-23T19:04:48Z",
                "@type": "venia/components/page",
                "parentId": "breadcrumb-9a2f8da940"
            },
            "breadcrumb-9a2f8da940-item-ba2b346a0c": {
                "dc:title": "Pants & Shorts",
                "xdm:linkURL": "/content/venia/us/en/products/category-page.html/venia-bottoms/venia-pants.html",
                "repo:modifyDate": "2022-02-23T19:04:48Z",
                "@type": "venia/components/page",
                "parentId": "breadcrumb-9a2f8da940"
            },
            "breadcrumb-9a2f8da940-item-11baf3bf2a": {
                "dc:title": "Lenora Crochet Shorts",
                "xdm:linkURL": "/content/venia/us/en/products/product-page.html/venia-bottoms/venia-pants/lenora-crochet-shorts.html",
                "repo:modifyDate": "2022-02-23T19:04:48Z",
                "@type": "venia/components/page",
                "parentId": "breadcrumb-9a2f8da940"
            },
            "product-4e2b208d40": {
                "xdm:currencyCode": "USD",
                "xdm:categories": [
                    {
                        "repo:id": "category-cf9d757f29",
                        "xdm:name": "Bottoms",
                        "xdm:asset": {
                            "@type": "image",
                            "repo:path": "https://jnz3dtiuj77ca.dummycachetest.com/media/catalog/category/minimalist.jpg",
                            "repo:id": "image-dad411636d"
                        }
                    },
                    {
                        "repo:id": "category-6e60cf4797",
                        "xdm:name": "Pants & Shorts"
                    }
                ],
                "xdm:assets": [
                    {
                        "@type": "image",
                        "repo:path": "https://jnz3dtiuj77ca.dummycachetest.com/media/catalog/product/cache/049921ef33cf983997e4a4ee02ef4cc5/v/p/vp09-pe_main_2.jpg",
                        "repo:id": "image-36fd81b46c"
                    },
                    {
                        "@type": "image",
                        "repo:path": "https://jnz3dtiuj77ca.dummycachetest.com/media/catalog/product/cache/049921ef33cf983997e4a4ee02ef4cc5/v/p/vp09-pe_alt_1.jpg",
                        "repo:id": "image-d3fc1369c0"
                    },
                    {
                        "@type": "image",
                        "repo:path": "https://jnz3dtiuj77ca.dummycachetest.com/media/catalog/product/cache/049921ef33cf983997e4a4ee02ef4cc5/v/p/vp09-pe_back_1.jpg",
                        "repo:id": "image-ed01dcdf01"
                    }
                ],
                "xdm:SKU": "VP09",
                "xdm:listPrice": 78,
                "dc:description": "<p>The Lenora Crochet Shorts are perfect for those days when the weather dictates your wardrobe options. The good news is you can keep cool and still look good. These cotton shorts have got you covered. </p><p>Features:</p><ul><li>Elastic waist </li><li>Drawstring waist</li><li>Sit just below the waist</li><li>4&quot; inseam</li><li>Hand wash, line dry</li></ul>",
                "dc:title": "Lenora Crochet Shorts",
                "@type": "venia/components/commerce/product",
                "parentId": "page-f9dfabef95"
            },
            "text-7fcb8179bf": {
                "@type": "venia/components/text",
                "xdm:text": "<p>&nbsp;</p>\r\n<p><b>Account</b></p>\r\n<p>&nbsp;</p>\r\n<p>Sign In</p>\r\n<p>&nbsp;</p>\r\n<p>Register</p>\r\n<p>&nbsp;</p>\r\n<p>Order Status</p>\r\n<p>&nbsp;</p>\r\n<p>Returns</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>\r\n",
                "parentId": "page-f9dfabef95"
            },
            "text-7a5cd87f09": {
                "@type": "venia/components/text",
                "repo:modifyDate": "2021-02-24T13:59:33Z",
                "xdm:text": "<p> </p>\r\n<p><b>About Us</b></p>\r\n<p> </p>\r\n<p>Our Story</p>\r\n<p> </p>\r\n<p>Email Signup</p>\r\n<p> </p>\r\n<p>Give Back</p>\r\n<p> </p>\r\n<p> </p>\r\n",
                "parentId": "page-f9dfabef95"
            },
            "text-f31246b3d7": {
                "@type": "venia/components/text",
                "xdm:text": "<p>&nbsp;</p>\r\n<p><b>Help</b></p>\r\n<p>&nbsp;</p>\r\n<p>Live Chat</p>\r\n<p>&nbsp;</p>\r\n<p>Contact Us</p>\r\n<p>&nbsp;</p>\r\n<p>Order Status</p>\r\n<p>&nbsp;</p>\r\n<p>Returns</p>\r\n<p>&nbsp;</p>\r\n<p>&nbsp;</p>\r\n",
                "parentId": "page-f9dfabef95"
            },
            "text-3141486461": {
                "@type": "venia/components/text",
                "xdm:text": "<p>&nbsp;</p>\r\n<p><b>Follow Us!</b></p>\r\n<p>&nbsp;</p>\r\n<p>Lorem ipsum dolor sit amet, consectetur adipsicing elit, sed do eiusmod tempor incididunt ut labore et dolore.</p>\r\n<p>&nbsp;</p>\r\n",
                "parentId": "page-f9dfabef95"
            },
            "footerCopyright": {
                "@type": "venia/components/text",
                "xdm:text": "<p>Copyright 2020, Venia.&nbsp;All rights reserved.</p>\r\n<p>345 Park Avenue,&nbsp;San Jose, CA 95110-2704, USA</p>\r\n",
                "parentId": "page-f9dfabef95"
            }
        },
        "productContext": {
            "sku": "VP09",
            "name": "Lenora Crochet Shorts",
            "productId": 0
        },
        "shopperContext": {
            "shopperId": "guest"
        },
        "customUrlContext": {
            "customUrl": "https://publish-p56998-e443732.adobeaemcloud.com/content/venia/us/en/products/product-page.html/venia-bottoms/venia-pants/lenora-crochet-shorts.html"
        },
        "referrerUrlContext": {
            "referrerUrl": "https://publish-p56998-e443732.adobeaemcloud.com/content/venia/us/en/products/category-page.html/venia-bottoms/venia-pants.html"
        }
    },
    "$type": "gcoe-adobe-client-data-layer.datalayer-push",
    "$rule": {
        "id": "RLa43254d3d672424b8af9dccc159fc394",
        "name": "Track Data on push event"
    }
}

Steps to Reproduce

  1. Install this project and connect it to https://venia.magento.com/graphql.
  2. Go to https://publish-p56998-e443732.adobeaemcloud.com/content/venia/us/en/products/product-page.html/venia-bottoms/venia-pants/lenora-crochet-shorts.html
  3. Add a the product to your wish list or your shopping cart
  4. Open developer tools console and inspect the ACDL: adobeDataLayer

Platform and Version

AEM Cloud Service
Magento headless: https://venia.magento.com/graphql

Uncaught TypeError: formApi.getValue is not a function

Expected Behaviour

CartPage is working correctly

Actual Behaviour

javascript stops on CartPage

Platform and Version

venia-2021.11.01

Sample Code that illustrates the problem

We implemented a CartPage based on this component/structure:
https://github.com/adobe/aem-cif-guides-venia/tree/venia-2021.11.01/ui.frontend/src/main/components/CartPage

We have the issue that by using the Quantity component from @magento/venia-ui (as you also do in your aem-cif-guides-venia project, at this line: https://github.com/adobe/aem-cif-guides-venia/blob/venia-2021.11.01/ui.frontend/src/main/components/CartPage/ProductListing/product.js#L120) we get the following error thrown out of the following component: https://github.com/magento/pwa-studio/blob/v8.0.0/packages/venia-ui/lib/components/CartPage/ProductListing/quantity.js#L12

Uncaught TypeError: formApi.getValue is not a function

formApi getValue

For us it looks like the React context from the used informed library is not available.

npm watch command

User Story

As a developer, I want an npm watch command so that frontend changes can be synced to AEM automatically

Description & Motivation

To speed up development

Deliverables

Code changes to webpack config

Javascript error thrown in storefront instance context

Expected Behaviour

No javascript errors thrown

Actual Behaviour

The following error occurs when opening the venia site on publish instance through a dispatcher that is configured to go to a magento cloud instance

Could not fetch storefront instance context Error: Cannot query field "dataServicesStorefrontInstanceContext" on type "Query".
    at new t (clientlib-site.js:705)
    at clientlib-site.js:705
    at r (clientlib-site.js:705)
    at clientlib-site.js:705
    at new Promise (<anonymous>)
    at Object.then (clientlib-site.js:705)
    at Object.next (clientlib-site.js:705)
    at O (clientlib-site.js:705)
    at E (clientlib-site.js:705)
    at e.t.next (clientlib-site.js:705)

Platform and Version

AEM 6.5.9 (on-premise in Azure)
Docker Dispatcher: https://github.com/adobe/aem-core-cif-components/tree/master/dispatcher
Adobe Commerce AddOn 2021 10 05
aem-cif-guides-venia main branch

Maven build fails (on Windows) for the "Venia - UI apps" module of the main branch

Expected Behaviour

I can build the Venia reference site from the main branch, and deploy it into a local AEM instance

Actual Behaviour

Maven build fails for the "Venia - UI apps" module:

Failed to execute goal org.apache.jackrabbit:filevault-package-maven-plugin:1.1.4:package (create-package) on project venia.ui.apps: java.lang.IllegalStateException: basedir C:\Develop\github\aem-cif-guides-venia\ui.apps\target\vault-work does not exist

Reproduce Scenario (including but not limited to)

Steps to Reproduce

$ git clone https://github.com/adobe/aem-cif-guides-venia
$ cd aem-cif-guides-venia/
$ mvn clean install -PautoInstallPackage,classic

Platform and Version

Windows 10, running mvn from git bash

$ mvn -version
Apache Maven 3.6.0 (97c98ec64a1fdfee7767ce5ffb20918da4f719f3; 2018-10-24T20:41:47+02:00)
Maven home: C:\Java\apache-maven-3.6.0
Java version: 1.8.0_201, vendor: Oracle Corporation, runtime: C:\Java\jdk1.8.0_201\jre
Default locale: de_DE, platform encoding: Cp1252
OS name: "windows 10", version: "10.0", arch: "amd64", family: "windows"

Logs taken while reproducing problem

[INFO] --- filevault-package-maven-plugin:1.1.4:package (create-package) @ venia.ui.apps ---
[INFO] Using META-INF/vault from C:\Develop\github\aem-cif-guides-venia\ui.apps\src\main\content\META-INF\vault
[INFO] Packaging content from C:\Develop\github\aem-cif-guides-venia\ui.apps\src\main\content\jcr_root
[INFO] ------------------------------------------------------------------------
[INFO] Reactor Summary for venia 1.0.0-SNAPSHOT:
[INFO]
[INFO] venia .............................................. SUCCESS [  0.651 s]
[INFO] Venia - Core ....................................... SUCCESS [ 16.979 s]
[INFO] venia.ui.frontend - UI Frontend .................... SUCCESS [01:26 min]
[INFO] Venia - Repository Structure Package ............... SUCCESS [  1.679 s]
[INFO] Venia - UI apps .................................... FAILURE [ 10.156 s]
[INFO] Venia - UI content ................................. SKIPPED
[INFO] Venia - All ........................................ SKIPPED
[INFO] Venia - Integration Tests .......................... SKIPPED
[INFO] Venia - Dispatcher AMS ............................. SKIPPED
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  01:58 min
[INFO] Finished at: 2020-08-13T13:52:39+02:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.jackrabbit:filevault-package-maven-plugin:1.1.4:package (create-package) on project venia.ui.apps: java.lang.IllegalStateException: basedir C:\Develop\github\aem-cif-guides-venia\ui.apps\target\vault-work does not exist -> [Help 1]
[ERROR]

The "ui.apps/target/vault-work" directory indeed does not exist (but a "vault-work-classic" directory is present):

$ ls -als ui.apps/target/
total 1649
   4 drwxr-xr-x 1 ssauder 1049089       0 Aug 13 13:52 ./
   0 drwxr-xr-x 1 ssauder 1049089       0 Aug 13 13:52 ../
   0 drwxr-xr-x 1 ssauder 1049089       0 Aug 13 13:52 classes/
   0 drwxr-xr-x 1 ssauder 1049089       0 Aug 13 13:52 generated-sources/
   0 drwxr-xr-x 1 ssauder 1049089       0 Aug 13 13:52 maven-archiver/
   0 drwxr-xr-x 1 ssauder 1049089       0 Aug 13 13:52 maven-status/
   1 -rw-r--r-- 1 ssauder 1049089     248 Aug 13 13:52 vault-generated-import.txt
   0 drwxr-xr-x 1 ssauder 1049089       0 Aug 13 13:52 vault-work-classic/
1644 -rw-r--r-- 1 ssauder 1049089 1679863 Aug 13 13:52 venia.ui.apps-1.0.0-SNAPSHOT-classic.zip

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.