Liferay는 기본 Ant 기반으로 되어 있고, Maven 기반으로 변경할 수 있다.
Maven 및 Nexus OSS 설치
- Ant는 build.xml에 설정하고 Maven은 pom.xml (Project Object Model)에 설정한다
- 예전 Spring+Maven 설정 블로깅을 참조한다.
- 메이븐은 로컬에 Nexus 서버를 설치하여 프로젝트/사내 시스템 단위로 라이브러리를 관리할 수 있다
+ http://www.sonatype.org/nexus/
+ 접속 : http://localhost:8081/nexus (admin / admin123)
+ Optional Install 사항이다. 굳이 설치하지 않아도 됨
- Liferay Nexus Repository : https://repository.liferay.com/nexus/index.html
Liferay Maven 설정
- 다운로드 liferay maven 라이브러리 (liferay-portal-maven-[version]-[date].zip) : CE버전만 해당됨
- 해당 파일에는 Maven artifact에 대한 파일 뿐만 아니라 스크립트 도구도 포함되어 있다. 적절한 위치에 압축을 해제한다
1) maven은 liferay-portals 소스를 참조하여 빌드되므로 소스를 다운로드 한다
$ cd ~/development/liferay_portal/sources
$ git clone https://github.com/liferay/liferay-portal.git
2) app.server.[user name].properties 파일을 liferay-portal 폴더 밑에 생성한다
$ cd ~/development/liferay_portal/sources/liferay-portal
$ vi app.server.[username].properties
app.server.type=tomcat
app.server.parent.dir=/Users/nulpulum/development/liferay_portal/portal-6.2-ce-ga2
app.server.tomcat.dir=${app.server.parent.dir}/tomcat-7.0.42
3) Local Repository 가 아닌 Liferay Central Repository에서 Artifacts 를 설치할 경우 pom.xml에 들어갈 내용
<repositories>
<repository>
<id>liferay-ce</id>
<name>Liferay CE</name>
<url>https://repository.liferay.com/nexus/content/groups/liferay-ce</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>liferay-ce</id>
<url>https://repository.liferay.com/nexus/content/groups/liferay-ce/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
> Central Repository in Nexus
> CLI 명령을 통해 접근 할 수도 있다
mvn archetype:generate -DarchetypeCatalog=https://repository.liferay.com/nexus/content/groups/liferay-ce
Liferay Eclipse IDE에 Maven 설정
- Liferay IDE 2.0 에서는 Maven project configurator (m2e-liferay) 제공
1) 만일 Meven Integration for Eclipse 1.4가 설치되어 있다면 1.5 버전으로 먼저 업데이트한다.
2) "Help" -> "Install New Software ..." 에서 Liferay SDK와 m2e-liferay 를 삭제하고-already installed 링크 클릭하여 삭제가능- Liferay IDE의 m2e-liferay 두개를 다시 설치한다. (mobile SDK는 미선택)
Liferay IDE repository - http://releases.liferay.com/tools/ide/latest/stable/
.
으악 Liferay Perspective가 동작하질 않는다!!!
3) Liferay Eclipse 4.3 - Kepler로 이동하기
- 멘붕이 시작되었다. m2e-liferay를 설치한 후 Liferay perspective가 제대로 동작하질 않아서 SDK, m2e 모두 삭제하고 다양한 방법으로 여러번 reinstall 시도를 하여도 Liferay Perspective가 제대로 동작하지 않아서 Eclipse Kepler(4.3) 최신버전으로 Liferay를 재구성 하였다.
- 다운로드 Eclipse Kepler 설치
- JDK v1.7 기반
- pom.xm 배포위치 & 저장소 위치 & 의존성 관계 라이브러리 환경 설정
+ Global settings, User settings, Parent Project pom.xml, Project pom.xml 4군데 중 하나에 설정한다.
+ 다른 프로젝트충돌을 방지할려면 자신의 프로젝트 pom.xml에 설정하는게 좋겠다.
+ Global/User settings 에는 profile에 설정하여 pom.xml에서 profile을 불러와서 사용하면 된다. (pom.xml 마다 설정이 필요없음)
<?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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.liferay.sample</groupId>
<artifactId>sample-parent-project</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>pom</packaging>
<name>sample-parent-project</name>
<url>http://www.liferay.com</url>
<!-- START : Maven 방식 Liferay plugin 생성시 추가해야할 내역 -->
<properties>
<liferay.app.server.deploy.dir>/Users/xxx/development/liferay_portal/www</liferay.app.server.deploy.dir>
<liferay.app.server.lib.global.dir>
/Users/xxx/development/liferay_portal/portal-6.2-ce-ga2/tomcat-7.0.42\lib\ext
</liferay.app.server.lib.global.dir>
<liferay.app.server.portal.dir>/Users/xxx/development/liferay_portal/www/ROOT</liferay.app.server.portal.dir>
<liferay.auto.deploy.dir> /Users/xxx/development/liferay_portal/portal-6.2-ce-ga2/deploy</liferay.auto.deploy.dir>
<liferay.maven.plugin.version>6.2.1</liferay.maven.plugin.version>
<liferay.version>6.2.1</liferay.version>
</properties>
<repositories>
<repository>
<id>liferay-ce</id>
<name>Liferay CE</name>
<url>https://repository.liferay.com/nexus/content/groups/liferay-ce</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</repository>
</repositories>
<pluginRepositories>
<pluginRepository>
<id>liferay-ce</id>
<url>https://repository.liferay.com/nexus/content/groups/liferay-ce/</url>
<releases><enabled>true</enabled></releases>
<snapshots><enabled>true</enabled></snapshots>
</pluginRepository>
</pluginRepositories>
<!-- END : Maven 방식 Liferay plugin 생성시 추가해야할 내역 -->
<!-- 이하 자동 생성되는 내역 일부임 -->
<dependencies>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>portal-client</artifactId>
<version>${liferay.version}</version>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>portal-impl</artifactId>
<version>${liferay.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>portal-pacl</artifactId>
<version>${liferay.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>portal-service</artifactId>
<version>${liferay.version}</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>portal-web</artifactId>
<version>${liferay.version}</version>
<type>war</type>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>util-bridges</artifactId>
<version>${liferay.version}</version>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>util-java</artifactId>
<version>${liferay.version}</version>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>util-slf4j</artifactId>
<version>${liferay.version}</version>
</dependency>
<dependency>
<groupId>com.liferay.portal</groupId>
<artifactId>util-taglib</artifactId>
<version>${liferay.version}</version>
</dependency>
</dependencies>
</project>
Maven 방식 Liferay Plugin 생성
- Liferay는 플로그인 6가지 방식에 대한 Maven의 archetype을 제공하고 있다
- Archetype is Maven’s project templating toolkit
1) Eclipse Liferay IDE에서 "New Liferay Plugin Project" 선택
2) Build type을 Maven으로 선택
다음에서 MVCPortlet 선택
* CLI 명령 생성하기
- 생성
mvn archetype:generate -DarchetypeCatalog=https://repository.liferay.com/nexus/content/groups/liferay-ce
- 배포
mvn liferay:deploy
3) IDE로 생성된 pom.xml 에는 오류가 있다. 위의 pom.xml에서 추가해야 할 것들을 추가한다
- properties : 배포 위치 및 버전 정보
- repositories : Liferay remote repository 위치 (Nexus OSS로 local proxy server 사용하지 않을 경우)
- pluginRepositores
4) Eclipse에서 "mobiconsoft-sample"을 선택하고 컨텍스트메뉴 "Liferay" -> "Maven" -> "liferay:deploy" 를 선택하여 war파일을 만들어 본다
[INFO] --- liferay-maven-plugin:6.2.1:deploy (default-cli) @ mobiconsoft-sample ---
[INFO] Deploying mobiconsoft-sample-1.0.0-SNAPSHOT.war to /Users/xxx/development/liferay_portal/portal-6.2-ce-ga2/deploy
[null] Copying 1 file to /Users/xxx/development/liferay_portal/portal-6.2-ce-ga2/deploy
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
deploy 디렉토리에 생성된 모습
5) Eclipse에서 해당 war를 tomcat 컨텍스트로 추가하고 시작하면 Liferay 화면에서 확인을 할 수 있다
Liferay v6.2 CE Server를 시작하면 Liferay 화면이 뜬다
- 그외 Maven 아키타입들
liferay:portlet, liferay:hook, liferay:ext, liferay:theme, liferay:layout
그외 ...
Liferay ServiceBuilder portlets
Liferay webs
Liferay Ext
JSF Portlet Archetype
ICEFaces Portlet Archetype
PrimeFaces Portlet Archetype
Liferay Faces Alloy Portlet Archetype
Liferay Rich Faces Portlet Archetype
DBBuilder - The build-db goal lets you execute the DBBuilder to generate SQL files.
SassToCSSBuilder - The build-css goal precompiles SASS in your css; this goal has been added to theme archetype.
지금까지 환경설정을 하고 어떻게 Maven으로 빌드하는 과정을 보았다. 다음 블로깅에서는 플로그인 개발 실무를 보도록 한다.
<참조>
- 샘플 pom.xml 파일
'Study Frameworks > Liferay Portal' 카테고리의 다른 글
[Liferay Portal] Portlet개발 (Action/Render 상호작용 및 URL Mapping) - 2 (0) | 2014.05.26 |
---|---|
[Liferay Portal] Portlet개발 (포틀릿 생성하기) - 1 (0) | 2014.05.06 |
[Liferay Portal] 개발환경구성 (Service Builder, Plugins SDK) - 5 (0) | 2014.05.02 |
[Liferay Portal] 개발환경구성 (프로젝트,플러그인 생성) - 4 (0) | 2014.04.30 |
[Liferay Portal] 개발환경구성 (기초) - 3 (0) | 2014.04.30 |