• Maven SDK


    Maven SDK

    Introduction#

    Latest efforts relating Maven and Liferay have been focused in providing official maven artifacts for Liferay as well as porting our plugins sdk to Maven.

    Our goal is to provide our CE releases through our own public repository as well as provide means for our EE customers to install the EE versions artifacts to their local maven repository.

    If you have ever worked with enterprise projects using maven you already know how important a local maven repository and proxy is. For those not so familiar with Maven a proxy is a server that proxies your requests to public Maven repositories and caches the artifacts locally for faster and more reliable access. Most maven proxies can also host private repositories used for hosting your company's private artifacts. Having a local proxy / repository makes your maven builds much faster and more reliable than accessing remote repositories that might even sometimes be unavailable.

    Installing a maven proxy / repository#

    First step is to install and setup Nexus. Nexus is a open source maven repository manager that can proxy to other repositories as well as host repositories. If you just want to try things locally you can skip this step.

    1. Download latest Nexus such as nexus-webapp-1.4.0-bundle.zip
    2. Follow the installation directions of the Nexus book http://nexus.sonatype.org/documentation.html
    3. Startup nexus
    4. Open your browser to your newly created nexus (if you installed it locally it could be accessed by opening http://localhost:8080/nexus)
    5. Login as administrator (default login is admin / admin123)
    6. Go to Repositories and click Add -> Hosted Repository
    7. Give the repository following information and click save
    Repository ID: liferay-ce-releases
    Repostory Name: Liferay CE Release Repository
    Provider: Maven2 Repository
    Repository Policy: Release
    1. Create another hosted repository with following information
    Repository ID: liferay-ce-snapshots
    Repository Name: Liferay CE Snapshot Repository
    Provider: Maven2 Repository
    Repository Policy: Snapshot

    Now you have a repository ready for Liferay's Maven artifacts. Next step is to configure your maven to be able to upload artifacts to that repository.

    Configuring Maven Settings#

    Open your $HOME/.m2/settings.xml (if the file does not exist create it). Add the servers segment to your settings.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <settings>
         <servers>
              <server>
                   <id>liferay</id>
                   <username>admin</username>
                   <password>admin123</password>
              </server>
         </servers>
    </settings>

    You might also want to make your Nexus as your maven proxy. To do that just add following xml segment to your settings.xml right before servers element.

    <mirrors>
         <mirror>
              <id>local</id>
              <name>Local mirror repository</name>
              <url>http://localhost:8080/nexus/content/groups/public</url>
              <mirrorOf>*</mirrorOf>
         </mirror>
    </mirrors>

    Installing Liferay Artifacts to Repository#

    Next we will install the Liferay Maven artifacts to your repository. First you need to checkout Liferay code from the SVN.

    svn --username guest co svn://svn.liferay.com/repos/public/portal/trunk portal-trunk

    Guest user does not require password.

    Then create a release.${username}.properties file and add

    maven.url=http://localhost:8080/nexus/content/repositories/liferay-ce-snapshots

    Build Liferay artifacts by running

    ant clean start jar

    Now you can deploy the Liferay artifacts to your maven repository by running

    ant -f build-maven.xml deploy-artifacts

    If you only want to have them locally without a maven repository you can run the install task instead of deploy

    ant -f build-maven.xml install-artifacts

    Now you can add Liferay dependencies to your maven project. Following artifacts are available:

    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>portal-client</artifactId>
    	<version>6.0-SNAPSHOT</version>
    </dependency>
    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>portal-impl</artifactId>
    	<version>6.0-SNAPSHOT</version>
    	<scope>provided</scope>
    </dependency>
    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>portal-kernel</artifactId>
    	<version>6.0-SNAPSHOT</version>
    	<scope>provided</scope>
    </dependency>
    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>portal-service</artifactId>
    	<version>6.0-SNAPSHOT</version>
    	<scope>provided</scope>
    </dependency>
    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>portal-web</artifactId>
    	<version>6.0-SNAPSHOT</version>
    	<scope>provided</scope>
    </dependency>
    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>util-bridges</artifactId>
    	<version>6.0-SNAPSHOT</version>
    </dependency>
    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>util-java</artifactId>
    	<version>6.0-SNAPSHOT</version>
    </dependency>
    <dependency>
    	<groupId>com.liferay.portal</groupId>
    	<artifactId>util-taglib</artifactId>
    	<version>6.0-SNAPSHOT</version>
    </dependency>

    NOTE portal-impl and portal-web are provided for maven plugins and should never be added as dependency to your Liferay plugins.

    Installing the Liferay Maven SDK#

    To take full advantage of Maven we are porting the functionality of out ant based Plugins SDK to Maven. To use it you need to install it locally. To install the Liferay maven plugins and archetypes go into support-maven folder and run

    mvn install

    Now the Liferay Maven SDK is installed and ready to use. We've implemented a portlet archetype and deployer plugin.

    Creating a Portlet Plugin#

    Move to the folder where you want to create your portlet and run

    mvn archetype:generate

    From the list select liferay-portlet-archetype and provide your project groupId, artifactId and version for the portlet project.

    You're portlet project's pom.xml has two properties liferay.auto.deploy.dir and liferay.version. These properties are usually moved to your parent pom.xml or settings.xml so that you don't have to adjust them for every single plugin you create. Set the liferay.auto.deploy.dir to point to the Liferay autodeploy directory of your Liferay bundle. This is where the deploy plugin will copy your portlet. Now you are ready deploy your newly created portlet. You can deploy it by running

    mvn liferay:deploy
  • 相关阅读:
    git 备查
    PyQt5 信号与槽机制
    Python 循环报错 'int' object is not iterable
    docker instructions命令及dockerfile实践
    shell脚本中set指令
    你知道什么是Python算法和数据结构、抽象数据和面向对象、数组和列表、链表吗?
    Python爬虫抓取B站人类高质量男性求偶视频的弹幕,康康都在讨论什么!❤️
    Python从入门到精通要掌握哪些基础知识?
    想搞个恶作剧吗? 代码丢给他,生死有命富贵在天,看我学会python用代码整蛊朋友
    妹妹画的小恐龙和我用Python画的小恐龙,你更加喜欢谁的!❤️
  • 原文地址:https://www.cnblogs.com/reynold-lei/p/3185391.html
Copyright © 2020-2023  润新知