JavaRush /Java Blog /Random-KO /Maven Alfresco SDK 시작하기 1부
CynepHy6
레벨 34
Великий Новгород

Maven Alfresco SDK 시작하기 1부

Random-KO 그룹에 게시되었습니다

Alfresco Maven SDK 시작하기

Jeff Potts, 2014년 1월 2부 =>
  • 소개
  • 기본 개념
  • 아파치 메이븐
  • 야외 모듈형 패키지(AMP)
  • 야외 메이븐 SDK
  • 이전 Ant 기반 SDK에 대해 무엇을 말할 수 있나요?
  • 첫 번째 프로젝트
  • 발사하자
  • 그것은 무엇이었나요?
  • 기타 빌드 명령
  • 벌채 반출

소개

이 튜토리얼은 어떤 방식으로든 프로젝트에서 Alfresco를 구성해야 하는 사람들을 위해 만들어졌습니다. 그래서 처음에는 “이게 뭐야?!”라고 생각합니다. 하지만 결국에는 다음을 배우게 됩니다.

  • Alfresco Maven SDK를 사용하여 처음부터 Alfresco 프로젝트를 만드는 방법
  • 설정에 따라 어떤 일이 발생해야 합니까?
  • 테스트를 만들고 실행하는 방법
  • 커뮤니티에 삽입하거나 공유하기에 적합한 아티팩트를 만드는 방법

콘텐츠 모델링, 작업 및 동작 사용자 정의, 추가 작업 흐름 또는 웹 스크립트와 같은 항목에 대한 자세한 학습으로 넘어가기 전에 이 튜토리얼을 시작점으로 간주해야 합니다.

시작하기 전에 잠시 여담을 말씀드리겠습니다. 솔루션에 대한 대체 경로는 거의 항상 많습니다. 이 튜토리얼에서는 가장 간단하고 직접적인 방법, 즉 더 빨리 알아내는 데 도움이 되는 안전한 경로를 안내해 드리겠습니다. 나중에 원한다면 몇 가지 사항을 변경하거나 다른 경로를 탐색할 수 있습니다.

기본 개념.

사용을 시작하기 전에 Maven, Alfresco 또는 이 SDK가 필요한 이유에 대해 너무 많이 알 필요는 없지만 일부 지식은 어떤 면에서 도움이 될 수 있으므로 기본 개념을 빠르게 안내해 드리겠습니다.

아파치 메이븐

Apache Maven은 빌드 관리 도구입니다. 여기에는 많은 기능이 있지만 가장 중요한 것은 프로젝트가 의존하는 종속성(및 종속성의 종속성)을 파악하는 데 시간을 절약한다는 것입니다. Maven은 이러한 종속성을 검색하고 캐시할 수 있습니다. 어떤 JAR 파일이 어떤 JAR 파일 뒤에 오는지 알아내려고 시간을 보낸 적이 있다면 이러한 도구의 유용성은 분명합니다.

야외 모듈형 패키지(AMP)

AMP는 특정 규칙을 따르는 디렉토리 구조의 ZIP 파일입니다. AMP 파일은 Alfresco 플랫폼에서 설정을 쉽게 공유하고 배포하는 데 사용됩니다. 프로젝트가 저장소 수준(웹 앱/야외)에서 사용자 정의 설정을 생성해야 하는 경우 AMP "repo"를 생성합니다. 프로젝트가 공유 수준(웹 앱/공유)에서 설정을 생성해야 하는 경우 "공유" AMP를 생성합니다. 두 수준 모두에서 변경이 필요한 경우 두 개의 AMP를 생성하는 것이 프로젝트의 경우 매우 일반적입니다.

야외 메이븐 SDK

오늘날의 프로그래머는 빈 디렉토리가 1분 안에 파일로 완전히 채워지고 다음 순간에 프로젝트를 시작할 준비가 되는 강력한 프레임워크에 익숙합니다. Alfresco 개발자가 더 적은 비용에 만족해야 하는 이유는 무엇입니까?

Maven 기반 SDK의 목표는 Alfresco 개발을 시작하기 위한 가장 간단한 조건을 만드는 것입니다. SDK는 프로젝트 템플릿(Maven 용어로 "원형")과 Maven에 AMP를 생성하고 Alfresco에 배포하는 방법을 알려주는 일부 내장 기능으로 구성됩니다.

Alfresco 및 Share WAR과 별도로 자체 애플리케이션을 작성하는 경우 Alfresco Maven SDK가 필요하지 않습니다. 그러나 이러한 웹 애플리케이션에서 실행되는 코드를 작성하려면 Alfresco Maven SDK에서 시작하세요.

기존 Ant 기반 SDK는 어떻습니까?

Alfresco는 처음부터 이 다운로드 가능한 SDK를 제공했습니다. SDK에는 컴파일, 소스 코드, 문서 및 예제 Eclipse 프로젝트에 필요한 종속성이 포함된 ZIP 컨테이너가 포함되어 있습니다. 이 예에서는 Ant 기반 빌더를 사용했습니다.

이 접근 방식에는 아무런 문제가 없었지만 개발 플랫폼은 발전했고 Ant의 SDK는 이에 맞춰 발전하지 못했습니다. 현재 이러한 예제의 일부는 오래되었으며(예: 기본 웹 서비스 API 또는 Alfresco Explorer 사용자 인터페이스) CMIS, 웹 스크립트 및 Activiti를 사용하는 고급 워크플로와 같은 매우 중요한 부분에 대한 예제가 충분하지 않습니다.

오래된 예제 외에도 이전 Ant SDK가 필요합니다. 개발자들은 너무 많은 일을 하고 있습니다. Alfresco Maven SDK를 사용하면 아무것도 다운로드할 필요도 없습니다. 프로젝트를 만들고 코딩을 시작하기만 하면 됩니다.

이제 Apache Maven, AMP 및 Alfresco Maven SDK에 대해 높은 수준으로 이해하게 되었습니다. 이제 모든 것이 실제로 작동하는 것을 볼 시간입니다

첫 번째 프로젝트

Alfresco Maven SDK를 사용하여 Alfresco 개발을 시작하는 것이 얼마나 쉬운지 보여드리겠습니다. 시작하기 전에 JDK 1.7과 Apache Maven 3이 설치되어 있어야 한다는 점을 상기시켜 드리고 싶습니다. 다른 것은 다운로드할 필요가 없습니다. 진지하게. 야외에서도요.

  1. 빈 디렉터리를 만듭니다. 우리는 곧 그 안에 몇 가지 추가 디렉터리를 만들 예정입니다.
  2. 이제 빈 프로젝트를 만들어 보겠습니다. 예를 들어 사용자 정의 콘텐츠 모델, 여러 사용자 정의 규칙 작업, 새로운 웹 스크립트 세트 또는 일부 Activiti 비즈니스 프로세스와 같이 Alfresco 저장소에 배포할 항목을 생성한다고 가정해 보겠습니다. 그것은 정말로 중요하지 않습니다. 새 프로젝트를 만들려면 다음 명령어를 실행하세요.
    mvn 원형:생성\
    -DarchetypeCatalog=https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml\
    -Dfilter=org.alfresco.maven.archetype:
  3. Maven은 몇 가지 작업을 수행하고 결국 "archetype"을 선택하도록 요청할 것입니다. 프로젝트 템플릿 라이브러리에서 기본 선택. 여기에는 두 가지가 있습니다. 하나는 "alfresco-amp-archetype"이고 다른 하나는 "alfresco-allinone-archetype"입니다. 우리의 목표는 Alfresco에 배포할 수 있는 AMP를 만드는 것이므로 첫 번째 요점은 우리에게 필요한 것입니다. 1을 입력하고 Enter를 누르십시오.
  4. Maven은 이제 프로젝트의 기반이 될 템플릿의 특정 버전을 요청합니다. 현재 최신 버전은 목록의 다섯 번째 옵션인 1.1.1이므로 5를 누르고 Enter를 누르세요.
  5. Maven이 groupId에 관해 질문합니다. "Java 패키지"와 유사합니다. 내 예는 항상 내가 SomeCo라는 가상의 회사에서 일한다는 사실을 기반으로 하므로 여기에 "com.someco"를 입력하겠습니다. 자신에게 맞는 내용을 입력하고 Enter를 누르세요.
  6. 다음은 ArtifactId입니다. 프로젝트 이름이라고 생각하세요. 이는 귀하의 AMP ID가 되므로 특별한 것을 선택하세요. 또한 이 모듈이 저장소에 내장되므로 "-repo" 행을 ArtifactId에 추가해야 합니다. 내 이름을 "someco-mvn-tutorial-repo"로 지정하고 Enter 키를 누릅니다.

  7. 이 시점에서 Maven은 입력한 값을 표시하고 다른 기본값을 추가하며 선택 사항을 확인하도록 요청합니다. 변경하고 싶은 사항이 있으면 "N"을 선택한 다음 변경하거나 "Y"를 눌러 계속할 수 있습니다. 필요한 경우 나중에 언제든지 이 값을 변경할 수 있습니다. "Y"를 누른 다음 Enter를 누르세요.

Maven은 이제 몇 가지 작업을 수행할 것입니다. 완료되면 다음을 얻게 됩니다.

  • Alfresco 개발을 지원하도록 구성된 프로젝트
  • 기본 구성 파일
  • 모든 것이 작동하는지 확인하기 위한 추가 단위 테스트를 위한 최소 Java 코드
  • 테스트에 필요한 로컬 Alfresco 인스턴스를 실행하는 데 필요한 구성
  • Maven에게 프로젝트의 종속성을 알려주는 기본 POM(Project Object Model) XML 파일

실행해보자

아직 아무것도 업로드하지 않았습니다. 아직 아무것도 수정하지 않았습니다. 당신이 한 일은 Maven에게 템플릿을 기반으로 프로젝트를 생성하라고 지시한 것뿐이었지만 좋은 소식이 있습니다: 당신의 프로젝트는 지금 바로 실행할 준비가 되었습니다.

이 시도:

CD someco-mvn-tutorial-repo
mvn 통합 테스트 -Pamp-to-war

출력을 보면 Maven이 프로젝트 컴파일, AMP 생성, AMP를 Alfresco WAR에 배포, Alfresco WAR을 내장 Tomcat 서버에 배포 및 실행하는 데 필요한 모든 것을 다운로드한다는 것을 알 수 있습니다. 결국 다음과 비슷한 내용이 표시됩니다.

2014-01-15 18:01:19,339 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] 1개의 모듈을 찾았습니다.
2014-01-15 18:01:19,480 INFO [repo.module.ModuleServiceImpl] [localhost-startStop-1] 'someco-mvn-tutorial-repo' 버전 1.0.1401151758 모듈을 설치합니다.

이는 프로젝트 모듈이 Alfresco 서버에서 생성되고 인식되었음을 의미합니다.

확인한 후:

2014년 1월 16일 오전 8:38:20 org.apache.coyote.AbstractProtocol 시작 정보: ProtocolHandler 시작 ["http-bio-8080"]

다음을 열 수 있어야 합니다.

http://localhost:8080/alfresco

그리고 "admin"과 "admin"을 사용하여 로그인하세요.

살펴보고 나면 Maven 명령을 실행한 창으로 돌아가서 Ctrl-C를 눌러 서버를 종료하세요.

통합 테스트를 실행할 때 메모리 부족 오류가 발생하는 경우 Maven의 메모리 옵션에 대한 일부 JVM 매개변수를 입력해야 할 수도 있습니다. 가능한 해결책 중 하나는 MAVEN_OPTS 환경 변수를 설정하는 것입니다. 예를 들어, 내 값을 다음과 같이 설정했습니다.

-Xmx1024M -XX:MaxPermSize=512m

MAVEN_OPTS를 사용하여 메모리 오버플로 오류가 표시되지 않도록 충분히 설정하세요.

그것은 무엇이었나요?

"amp-to-war" 프로필을 사용하기 위해 Maven에게 "integration-test"를 실행하도록 요청했습니다. 이로 인해 프로젝트를 구축하고 이를 새로운 Alfresco WAR에 AMP로 배포하고 내장된 Tomcat 서버를 실행하게 되었습니다. 그 후에는 이전 Alfresco Explorer 클라이언트에 로그인하고 저장소로 작업하여 모듈을 테스트할 수 있었습니다.

대상 디렉터리를 살펴보면 Alfresco WAR에서 생성되어 배포된 AMP를 볼 수 있습니다. 내 경우에는 "someco-mvn-tutorial-repo.amp"라고 합니다. 이 파일은 저장소 수준 변경 사항을 라이브 Alfresco 서버에 적용할 준비가 된 경우 IT 팀에 제공해야 하는 파일입니다.

기타 빌드 명령

항상 Alfresco 서버를 시작하고 실행 상태로 둘 필요는 없습니다. 프로젝트를 빌드하고, 단위 테스트를 실행하고, AMP를 패키징하려는 경우 다음을 수행할 수 있습니다.

mvn 패키지

로컬 Maven 저장소 내에 AMP를 설치하려면 다음을 실행하세요.

mvn 설치

프로젝트에 기본적으로 간단한 단위 테스트가 포함되어 있다는 것을 눈치채셨을 것입니다. 기본적으로 Maven은 프로젝트에서 단위 테스트를 자동으로 실행합니다. 콘솔 출력에서 ​​이를 확인할 수 있습니다.

------------------------------------- -----
 테스트
------------------------------------- -----
org.alfresco.demoamp.test.DemoComponentTest 실행

프로젝트에 항상 단위 테스트가 포함되어 있는지 확인하고 빌드할 때마다 이를 실행하는 것이 좋습니다. 많은 조직에서는 이러한 테스트에 의존하는 CI(지속적 통합) 도구를 사용합니다. 어떤 이유로 테스트를 실행하고 싶지 않은 경우 다음과 같이 건너뛸 수 있습니다.

mvn 설치 -DskipTests=true

Maven이 생성한 모든 컴파일된 내용을 제거하고 다시 시작하려면 다음을 실행하세요.

깨끗한

서버 테스트를 실행할 때 항상 생성되는 내장 데이터베이스, 저장된 Alfresco 콘텐츠, 인덱스 및 로그도 삭제하려면 다음을 실행할 수 있습니다.

mvn clean -퍼지

이제 템플릿을 사용하여 새로운 Alfresco 프로젝트를 생성하는 방법과 테스트 유무에 관계없이 구축의 기본 사항을 알게 되었습니다. 다음 단계는 IDE에서 프로젝트로 작업하는 방법을 배우는 것입니다.

벌채 반출

log4j.properties 파일은 모듈 디렉터리에 있으며 log4j.properties 파일에는 다음이 포함됩니다.

log4j.logger.org.alfresco.demoamp.DemoComponent=${module.log.level}

아마도 이를 패키지 구조에 맞는 고유한 설정으로 바꾸고 싶을 것입니다.

module.log.level을 구성하려면 Maven을 시작할 때 다음과 같이 하면 됩니다.

mvn install -Dmodule.log.level=DEBUG

또는 pom.xml을 편집하여 다음과 같이 속성에 추가할 수 있습니다.

<module.log.level>디버그</module.log.level>

pom.xml을 변경하면 AMP는 생성 시 이러한 설정을 수신하고 이후에 AMP가 배포되는 WAR이 로그를 작성합니다. 이것은 당신이 원하는 것일 수도 있고 아닐 수도 있습니다. 확실하지 않은 경우 명령줄을 사용하여 값을 설정하는 것이 더 나을 수 있습니다. 이렇게 하면 실수로 AMP의 값을 엉망으로 만드는 것을 방지할 수 있습니다.

ECM 아키텍트


이 저작물은 Creative Commons Attribution-ShareAlike 3.0 Unported License 에 따라 라이센스가 부여됩니다 . 2부 =>
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION