...
Info |
---|
Before you start you must make sure that you have the following software is installed and properly configured (i.e. runnables are on system path and you can run them from command line). |
Tip |
---|
If you are running *nix please consult your OS documentation for the installation procedures of the above software. We would not recommend installing it manually. For example Mac OSX users are strongly advised to you macports as installation shell. |
Nice to have | Notes |
---|
Intellij IDEA Ultimate | Ultimate is required for Flex support |
Http server configurable for ajp 1.3 | If you would like to mirror production setup locally |
TOAD or MySQL query browser | If you plan to use mysql then GUI client would help |
Environment variables
Environment Variables | Required | Example value | Notes |
---|
JAVA_HOME | | D:\jdk1.8.0_45 | |
JAVA_OPTS | | -Xms256m -Xmx1024m | Required as Tomcat may fail with OutOfMemory exception |
ANT_HOME | | D:\apache-ant-1.8.1 | |
ANT_OPTS | | -Xms256m -Xmx1024m | |
M2_HOME | | D:\apache-maven-3.0.3 | |
MAVEN_OPTS | | -Xms256m -Xmx1024m | Required as test may fail with OutOfMemory exception |
CATALINA_OPTS | | -Dfile.encoding=UTF-8 | Required by Tomcat to correctly process UTF-8 requests |
PATH | | | should contain all executables for the installed software |
Tip |
---|
You can check Environment variables from shell (*nix) by using "./yc.sh env" or cmd (Windows) by using "yc.bat env". |
...
Warning |
---|
You only need to perform steps in this section once. After these are correctly setup skip this section in day to day builds. |
Maven
3rd party
...
libraries Label |
---|
Body | pre 3.3.0 |
---|
Colour | danger |
---|
|
YesCart uses some 3rd party libraries that are no available on maven central, so you need to manually add them to your local repository
Go to the root of the YesCart checkout directory (i.e. /dev/yc in the example below).
...
Tip |
---|
If above does not work please make sure that your mvn installation is working correctly from command line and that all environment variables have been setup correctly. |
First time maven
...
build Label |
---|
Body | pre 4.0.0 |
---|
Colour | danger |
---|
|
Run maven *clean* install command that will compile, test and package the code using the *dev* environment configurations
Warning |
---|
Note the clean phase in the first time build. It is necessary was necessary in pre 4.0.0 versions to load all nodes dependencies for the jam-jsclient module. |
Code Block |
---|
/dev/yc$ mvn clean install |
...
Code Block |
---|
[echo] =========================================================================================================================================================
[echo] |
[echo] | __ _______ ______
[echo] | \ \ / / ____| | ____| v.3.5.0-SNAPSHOT (build: 0556dbaf)
[echo] | \ \_/ | | ______ _ __ _ _ _ __ ___| |__ ___ ___ _ __ ___ _ __ ___ ___ _ __ ___ ___
[echo] | \ /| | |______| '_ \| | | | '__/ _ | __| / __/ _ \| '_ ` _ \| '_ ` _ \ / _ | '__/ __/ _ \
[echo] | | | | |____ | |_) | |_| | | | __| |___| (_| (_) | | | | | | | | | | | __| | | (_| __/
[echo] | |_| \_____| | .__/ \__,_|_| \___|______\___\___/|_| |_| |_|_| |_| |_|\___|_| \___\___|
[echo] | | |
[echo] | |_| Copyright 2018 http://www.yes-cart.org
[echo] |
[echo] =========================================================================================================================================================
[echo]
[echo] YC module jam-3.5.0-SNAPSHOT-rev.0556dbaf configurations:
[echo]
[echo] Environment configuration (use -Denv=x to switch) : dev-idea
[echo] Database provider (use -Pmysql or -Pderby) : derby
[echo] Full text search provider (use -PftEmbededLucene or -PftDisabled) : embeded-lucene
[echo] Tomcat SSL configuration (use -Pssl) : off
[echo] JAM npm goal (use -Dnpm.goal=x to switch) : build.dev
[echo] JAM npm target (use -Dnpm.target.home=x to switch) : dev (typescript/dist/dev)
[echo] JAM npm modules (use -Dnpm.target.modules=x to switch) : node_modules (typescript/node_modules)
[echo]
[echo] Payment modules
[echo] LiqPay payments (use -PpaymentLiqPay or -PpaymentAll) : on
[echo] Cybersource payments (use -PpaymentCybersource or -PpaymentAll) : on
[echo] Authorize.Net payments (use -PpaymentAuthorize or -PpaymentAll) : on
[echo] PayPal payments (use -PpaymentPaypal or -PpaymentAll) : on
[echo] PostFinance payments (use -PpaymentPostFinance or -PpaymentAll) : on
[echo]
[echo] Add-on modules
[echo] Marketing price rules integration (use -Ppricerules) : on
[echo]
[echo] Web Apps
[echo] Storefront: ROOT.war
[echo] REST API : yes-api.war
[echo] ADMIN : yes-manager.war
[echo]
[echo] Tips:
[echo] * use mvn help:all-profiles or help:active-profiles to list profiles available
[echo] * use mvn dependency:tree to list all dependencies
[echo] * documentation for YC profiles is available at:
[echo] http://www.inspire-software.com/documentation/wiki/docyescart/view/3.3.x/For%20Technical%20Users/Installation/From%20source/
[echo] ========================================================================================================================================================= |
Tip |
---|
*YC mvn profiles YC The platform comes with a variety of maven profiles to tweak your build as required |
...
Info |
---|
When working with maven if you specify at least one profile then activation by default stops working for other profiles. Hence you may need to specify all default profiles in some cases. |
Profile | Alternative | Default | Dependency1 | Affected module | Version | Notes |
---|
dev | | | | jam, |
yes-shop yes- api | 3.0.0+ | synonym for -Denv=dev |
devIntellijIDEA | | | | jam, |
yes-shop yes- api | 3.0.0+ | synonym for -Denv=dev-idea |
buildInstaller buildInstaller (EoL 3.3.x) | | | | installer | 3.0.0+ | Includes installer module in the build |
derby |
mysql mysql, mysql8 | | | jam, |
yes-shop yes- api | 3.0.0+ | Sets derby connector for hibernate |
mysql |
derby derby, mysql8 | | | jam, |
yes-shop, yes-api sf, api | 3.0.0+ | Sets mysql connector for hibernate (connector/j 5.x.x) |
mysql8 | mysql, derby | | | jam, sf, api | 4.0.0+ | Sets mysql connector for hibernate (connector/j 8.x.x) |
ftEmbededLucene | ftDisabled | | |
yes-shop yes- api | 3.5.0+ | Enables Lucene to be full text search provider for storefront |
ftDisabled | ftEmbededLucene | | |
yes-shop yes- api | 3.5.0+ | NOOP full text search provider for storefront (used for builds that use external CMS + external FT provider) |
nodejs (Deprecated 4.0.0) | | | | jam-jsclient | 3.3.0+ 4.0.0+
| Deprecated in 4.0.0, please use admincors and appropriate npm scripts
Used for JAM client development with validate phase to update currently running instance. Usage is from within specific module: Code Block |
---|
yes-cart/manager/jam$ mvn validate -Pdev,nodejs,derby,ftEmbededLucene,connREST |
Use this profile for supporting IDE builds to copy extra resources that IDE does not "see". |
ssl | | | | jam, |
yes-shop, yes-api sf, api | 3.0.0+ | Sets secure configurations for wicket (enabled security, guarantee CONFIDENTIAL) and sets up default secure and insecure ports (8443, 8080). If not used then "behind Apache" mode is assumed (disables security, guarantee NONE), default secure and insecure ports (443, 80). |
cors | corsOff | | | api | 3.7.0+ | Allows to enable CORS mode for API. See REST API for more details |
corsOff | cors | | | api | | Disable CORS mode for API (original 3.6.x behaviour) |
admincors | admincorsOff | | | jam | 4.0.0+ | Enables CORS in Admin app APIs. It is recommended to switch this option on in local development, so that SPA started in npm can connect to the locally running server. There is a convenience npm start script startlocal.sh located in jam-jsclient/src/main/typescript that will start the client in "local" mode which will connect to APIs on localhost:8082/cp (which is default development setup). |
admincorsOff | admincors | | | jam | 4.0.0+ | Disables CORS in Admin app APIs. |
templates | | | | jam, |
yes-shop, yes-api sf, api | 3.0.0+ | DO NOT use for full builds. This profile allows to manually copy all necessary templates to relevant module. Usage is from within specific module: Code Block |
---|
yes-cart/manager/jam$ mvn validate -Ptemplates,derby,ftEmbededLucene,connREST |
Use this profile for supporting IDE builds to copy extra resources that IDE does not "see". |
connREST | connWS, connJGIPv4, connJGIPv6 | | | jam, sf, api | 3.6.0+ | REST API connector for internal communication between application in the cluster |
connWS | connREST, connJGIPv4, connJGIPv6 | | | jam, sf, api | 3.6.0+ | WebServices connector for internal communication between application in the cluster |
connJGIPv4 | connREST, connWS, connJGIPv4 | | | jam, sf, api | 3.6.0+ | JGroups IPv4 connector for internal communication between application in the cluster |
connJGIPv6 | connREST, connWS, connJGIPv6 | | | jam, sf, api | 3.6.0+ | JGroups IPv6 connector for internal communication between application in the cluster |
paymentBase | paymentAll | | |
| payment modules | 3.0.0+ | Disabled all additional payment modules |
paymentAll | paymentBase | | | payment modules | 3.0.0+ | Enables all additional payment modules |
paymentLiqPay | paymentLiqPayOff | |
| payment modules | 3.0.0+ | Enables LiqPay additional payment module |
paymentLiqPayOff | paymentLiqPay | |
| payment modules | 3.0.0+ | Disables LiqPay additional payment module |
paymentCybersource | paymentCybersourceOff | | | payment modules | 3.0.0+ | Enables Cybersource additional payment module |
paymentCybersourceOff | paymentCybersource | |
| payment modules | 3.0.0+ | Disables Cybersource additional payment module |
paymentAuthorize | paymentAuthorizeOff | | | payment modules | 3.0.0+ | Enables Authorize.NET additional payment module |
paymentAuthorizeOff | paymentAuthorize | |
| payment modules | 3.0.0+ | Disables Authorize.NET additional payment module |
paymentPaypal | paymentPaypalOff | | |
| payment modules | 3.0.0+ | Enables PayPal additional payment module (PayPal NVP, Payflow and Express) |
paymentPaypalOff | paymentPaypal | | |
paymentmodulespayment modules | 3.0.0+ | Disables PayPal additional payment module (PayPal NVP, Payflow and Express) |
paymentSwissbilling | paymentSwissbillingOff | | | payment modules | 3.7.0+ | Enables Swissbilling additional payment module |
paymentSwissbillingOff | paymentSwissbilling | | | payment modules | 3.7.0+ | Disables Swissbilling additional payment module |
1 Dependency profiles are used to inject additional Maven dependencies during build. If at least one Maven profile is specified in build command all applicable dependency profiles must be explicitly stated. For example "mysql" profile adds MySQL driver jar file to WEB-INF/lib thus if we use "-PdevIntellijIDEA" we need to use either "-PdevIntellijIDEA,mysql" or "-PdevIntellijIDEA,derby" to add either MSQL or Derby driver. Note that all jar files are preserved between builds in WEB-INF/lib unless a "mvn clean install" is performed.
Variables
YC The platform defines several build variables in pom files. However because of the dependency management mechanism using only variable is not enough. Thus you must not manipulate those manually but rather define correct values in custom profiles within pom.xml files.
...
Tip |
---|
If you encounter java.security.AccessControlException: access denied ("java.net.SocketPermission" "localhost:1527" "listen,resolve") refer to Derby quick startguide. |
Navigate to YC_HOME from command line and startup Derby server (in background mode)
...
MySQL
Make sure your MySQL server is running (try connecting to it through command line 'mysql' command)
...
Other RDBMS's and configuring existing
...
Tip |
---|
If you are setting up tomcat from scratch please have a look at some things on our Tomcat page that you should be aware of. |
...
Default user/password to connect is:
Or use REST client to access API:
http://localhost:8080/yes-api/
IDE setup
Intellij IDEA
Import demo data
Follow steps on Demo Data Import