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

Maven Alfresco SDK 시작하기 2부

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

Alfresco Maven SDK 시작하기

Jeff Potts, 2014년 1월 <= ​​1부
  • 우리는 IDE에서 귀하의 프로젝트를 작업합니다.
  • 프로젝트 구조 이해
  • 공유 액세스에 적합한 프로젝트 생성
  • 일반 프로젝트 종속성
  • 전쟁 목표
  • 이것을 시도해 봅시다: 원형을 사용하여 공유 프로젝트 만들기
  • 공유 액세스 디렉터리 구조 이해
  • Share에 대한 내부 테스트 시작
  • 종속성 관리
  • 자율 학습을 위한 기타 주제
  • 자세한 정보를 찾을 수 있는 곳

우리는 IDE에서 귀하의 프로젝트를 작업합니다.

이는 필수는 아니지만 많은 사람들이 Alfresco를 설정할 때 IDE에서 작업하는 것을 선호합니다. 모든 IDE에서 이 작업을 수행하지만 가장 인기 있는 것 중 하나가 Eclipse이므로 작동 방식을 살펴보겠습니다.
저는 웹 개발자용 Eclipse Java EE IDE의 Kepler 버전을 사용하고 있습니다. Maven 지원이 내장되어 있습니다.
생성된 프로젝트를 열려면 다음을 수행합니다.
  • 파일, 가져오기, Maven, 기존 Maven 프로젝트. 다음을 클릭하세요.
    Maven Alfresco SDK 시작하기 2부 - 1
  • someco-mvn-tutorial-repo 디렉터리가 포함된 디렉터리를 지정합니다. Eclipse는 이 디렉토리를 확인하고 프로젝트 목록에 프로젝트를 표시합니다. 프로젝트 이름 옆의 확인란이 선택되어 있는지 확인하고 다음을 클릭합니다.
    Maven Alfresco SDK 시작하기 2부 - 2
  • Eclipse는 Maven 플러그인 패널 설정을 표시합니다. 이제는 무시해도 됩니다. 마침을 클릭합니다.
    Maven Alfresco SDK 시작하기 2부 - 3
이제 프로젝트를 Eclipse 작업공간으로 가져왔습니다.
마커 패널에서 "라이프사이클 구성에 포함되지 않는 플러그인 실행"이라는 Maven 문제 목록을 볼 수 있습니다.
Maven에 플러그인에 문제가 있습니다 Maven에 플러그인 문제가 있습니다(설정 버전).
해결 방법:
  1. 오류를 마우스 오른쪽 버튼으로 클릭하고 "빠른 수정"을 선택합니다.
  2. "Eclipse 빌드에서 무시되는 것으로 pom.xml의 목표 세트 버전을 영구적으로 표시"를 선택합니다. 준비가 된.
  3. POM이 있는 위치를 선택하고(광산은 com.someco : someco-mvn-tutorial-repo : 1.0-SNAPSHOT) 확인을 클릭합니다.
프로젝트를 다시 빌드한 후 "프로젝트 구성이 pom.xml로 최신 상태가 아닙니다."라는 최신 문제 중 하나가 나타날 수 있습니다. 수정을 위해:
  1. 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Maven, 프로젝트 업데이트를 선택합니다.
  2. 프로젝트가 선택되었는지 확인하고 확인을 클릭합니다.
이제 Eclipse는 아마도 만족스러울 것이며 유일한 오류는 일부 사용되지 않은 Java 가져오기에 대한 경고 때문이어야 합니다.

프로젝트 구조 이해

프로젝트의 디렉터리 구조는 IDE에서 탐색하기가 좀 더 좋습니다. 여기에 무엇이 있는지 살펴보겠습니다.
  • pom.xml 프로젝트 루트에 pom.xml이 표시됩니다. Maven은 프로젝트에 대해 알아야 할 모든 것을 알려줍니다. 템플릿에서 프로젝트를 생성할 때 잊어버린 일부 설정을 기억하시나요? 여기에서 설정을 변경할 수 있습니다. 예를 들어, 원형 버전 1.1.1을 사용하면 Alfresco Community Edition 버전 4.2.e에서 작업할 수 있습니다. 다른 버전으로 작업하고 싶다면 몇 가지 속성을 변경하고 Maven에게 이를 업데이트하라고 지시하면 나머지는 알아서 처리됩니다.
  • src/main/java 이곳은 Java 코드를 구성하기 위해 자신만의 패키지를 생성해야 하는 곳입니다. 사용자 정의 작업 실행기 클래스, 사용자 정의 동작, 웹 스크립트용 Java 컨트롤러 등이 여기에 있습니다. 이 모든 것이 무엇인지 모르더라도 걱정하지 마십시오. 여기에서 사용할 수 있는 튜토리얼이 있습니다 . 이러한 파일은 결국 JAR에 저장됩니다. AMP가 Alfresco WAR에 설치되면 JAR은 WEB-INF/lib 내부에 있게 됩니다 .
  • src/test src/test 내부의 모든 것은 테스트 실행과 관련되어 있습니다. 단위 테스트 자체는 src/test/java 에 있습니다 . 이 클래스에 필요한 모든 리소스는 src/test/resources에 있습니다. src/test/properties/local 안에 alfresco-global.properties 파일이 표시됩니다 . Alfresco에 대해 이미 알고 있다면 Alfresco 서버를 구성하는 데 사용된다는 것을 알고 계실 것입니다. 이 경우 테스트 목적으로 임베디드 서버를 실행하는 데에만 사용됩니다.
  • src/main/amp 다른 모든 것은 프로젝트의 이 부분 어딘가에 있습니다. AMP 구조는 매우 잘 문서화되어 있으므로 여기에 복제하고 싶지 않습니다. 주요 사항만 지적하겠습니다.
    • module.properties 파일은 ID, 버전, AMP를 실행하는 데 필요한 Alfresco의 최소 및 최대 버전, 동일한 종속성을 가진 기타 AMP 등 AMP에 대해 알아야 할 사항을 Alfresco에 알려줍니다.
    • config/alfresco/module/someco-mvn-tutorial-repo 디렉토리 는 AMP의 핵심입니다. Spring XML 파일 구성, XML 파일의 컨텐츠 모델 및 사용자 인터페이스 구성을 배치할 위치입니다. 나중에 보게 되겠지만, 나는 이들 각각에 대해 하위 디렉터리를 분리하는 것을 선호합니다.
    • 모듈에 웹 스크립트 또는 워크플로가 포함되어 있으면 모듈 디렉터리에 포함되지 않습니다. 대신 config/alfresco/extension/templates/webscripts 및 config/alfresco/extension/workflows 에 있습니다 .
    • 모듈에는 웹 애플리케이션의 루트에 배포되어야 하는 클라이언트 리소스가 포함될 수 있습니다. 이러한 파일은 CSS, JSP, 스크립트 및 이미지 디렉터리의 src/main/amp/web 에 있습니다 .
이 전체 프로젝트를 소스 제어로 확인해야 합니다. 대상 디렉터리와 alf_data_dev 디렉터리를 무시하도록 버전 제어 클라이언트를 구성할 수 있습니다.
이제 저장소 수준 설정을 위한 프로젝트를 생성하는 방법을 이해했습니다. 공유 수준을 살펴보겠습니다. 그 일환으로 Eclipse를 종료하지 않고 프로젝트를 생성할 수 있는 또 다른 옵션을 보여 드리겠습니다.

공유 액세스에 적합한 프로젝트 생성

첫째, 저장소 수준에서 생성된 프로젝트의 구조가 조정된 공유 액세스 계층에 대한 프로젝트의 구조와 정확히 동일하다는 점을 이해해야 합니다. Alfresco Maven SDK의 향후에는 공유 프로젝트를 구별하는 두 가지 사항이 있습니다. 즉, 프로젝트의 종속성과 AMP WAR이 내장됩니다.

일반 프로젝트 종속성

잠시 멈추고 종속성 관리에 대해 이야기해 보겠습니다. 현재 구현은 기본적으로 pom.xml 프로젝트에 구성된 아키타입이 alfresco-repository 아티팩트의 종속성을 사용하도록 구현됩니다. 공유 프로젝트에는 이러한 종속성이 없습니다. 사실 많은 공유 프로젝트는 Java를 전혀 사용하지 않습니다. 이제 pom.xml을 편집하고 alfresco-repository 종속성을 제거해 보겠습니다. 이로 인해 데모 구성 요소 및 관련 테스트 클래스가 컴파일될 때 오류가 생성됩니다. 제거할 수 있습니다.

전쟁 목표

Share 프로젝트를 구별하는 또 다른 점은 AMP가 배포되는 WAR입니다. 야외 WAR 대신 여기에서 Share WAR을 배포해야 합니다. 이는 pom.xml의 alfresco.client.war 속성에서 구성됩니다. 기본적으로 이는 "야외"로 설정됩니다. 공유 프로젝트의 경우 "share"로 바꿔야 합니다.

이것을 시도해 봅시다: 원형을 사용하여 공유 프로젝트 만들기

일반 설정을 사용하여 새 프로젝트를 만들어 보겠습니다. 명령줄로 이동하여 이전에 실행한 것과 동일한 Archetype 명령을 실행하고 새 이슈 ID를 제외하고 alfresco.client.war 속성을 "share"로 변경할 수 있습니다. Eclipse를 사용하지 않는 경우 지금 바로 실행하고 다음 섹션을 건너뛰세요.
또 다른 옵션은 IDE를 종료하지 않고도 Alfresco Maven SDK를 사용하여 새 Alfresco 프로젝트를 생성할 수 있도록 Eclipse를 구성하는 것입니다. 그걸하자.
  1. 파일, 새로운 Maven 프로젝트.
  2. "repo" 프로젝트 디렉터리가 포함된 디렉터리를 선택하고 다음을 클릭합니다.
    Maven Alfresco SDK 시작하기 2부 - 4
  3. 구성을 클릭하면 Alfresco 디렉터리를 목록에 추가할 수 있습니다.
    Maven Alfresco SDK 시작하기 2부 - 5
  4. 원격 카탈로그 추가를 클릭하세요.
  5. 카탈로그 파일로 "https://artifacts.alfresco.com/nexus/content/groups/public/archetype-catalog.xml"을 선택합니다. "Alfresco Archetypes" 설명을 선택합니다. 그런 다음 확인을 클릭하고 기본 설정 패널에 더 가까운 확인을 다시 클릭합니다.
    Maven Alfresco SDK 시작하기 2부 - 6
  6. 이제 디렉토리에서 "Alfresco Archetypes"를 선택하면 목록에 여러 가지 원형이 표시됩니다.
  7. "org.alfresco.maven.archetype"을 선택하면 튜토리얼 시작 부분과 동일한 두 가지 원형이 필터에 나타납니다.
  8. alfresco-amp-archetype을 선택하고 다음을 클릭합니다.
    Maven Alfresco SDK 시작하기 2부 - 7
  9. groupId로 "com.someco"를 선택하고, ArtifactId로 "someco-mvn-tutorial-share"를 선택하고 alfresco_target_amp_client_war를 "share"로 변경합니다. 마침을 클릭합니다.
    Maven Alfresco SDK 시작하기 2부 - 8
이제 공유 프로젝트가 작업 공간에 있습니다. 다음에 이 아키타입을 사용하여 새 프로젝트를 생성할 때 디렉터리를 추가할 필요가 없기 때문에 단계가 조금 더 줄어들 것입니다.

공유 액세스 디렉터리 구조 이해

앞서 언급했듯이 이 프로젝트의 구조는 우리의 repo 프로젝트와 정확히 동일합니다. 유일한 차이점은 repo 프로젝트에서는 웹 스크립트와 같은 항목이 src/main/amp/config/alfresco/extension/templates/webscripts 내에 있다는 것입니다. 일반 프로젝트에서는 src/main/amp/config/alfresco에 있습니다. /웹 확장/사이트-웹스크립트.

Share에 대한 내부 테스트 시작

두 가지 수준의 설정을 동시에 작업하는 경우가 많습니다. 일반 수준에는 메시지 저장소가 필요합니다. 이를 수행하는 한 가지 방법은 Maven에게 다음을 사용하여 repo 프로젝트를 시작하도록 지시하는 것입니다.
CD someco-mvn-tutorial-repo
mvn 통합 테스트 -Pamp-to-war
그런 다음 다음을 사용하여 공유 프로젝트를 실행하십시오.
CD someco-mvn-tutorial-share
mvn 통합 테스트 -Pamp-to-war -Dmaven.tomcat.port=8081
두 서버가 모두 가동되면 http://localhost:8081/share를 열고 로그인하여 모듈을 테스트할 수 있습니다.

종속성 관리

Apache Maven의 멋진 점은 프로젝트의 종속성을 관리한다는 것입니다. 당신이 해야 할 일은 pom.xml을 구성하여 Maven에게 이에 대해 알려주는 것뿐입니다. 기본적으로 Alfresco Maven SDK는 프로젝트에 대해 alfresco-repository 및 junit라는 두 가지 종속성을 생성합니다.
앞서 쓴 것처럼 Alfresco Share 프로젝트는 Alfresco 저장소에 의존하지 않으므로 someco-mvn-tutorial-share 프로젝트의 경우 이러한 종속성을 제거할 수 있습니다. 하지만 Java 기반 웹 스크립트와 같은 일부 Java 항목을 공유 프로젝트에 추가하려면 어떻게 해야 합니까? 이 경우 종속성을 추가해야 합니다.
웹 스크립트는 모든 수준에서 실행될 수 있습니다. repo 프로젝트에서 Java 기반 웹 스크립트를 작성하는 경우 alfresco-repository 아티팩트의 종속성은 spring-webscripts 아티팩트에 따라 달라지기 때문에 클래스가 빌드됩니다. pom.xml 파일에서 Eclipse의 종속성 계층 구조를 열면 이를 확인할 수 있습니다.
Eclipse의 종속성 계층
Eclipse의 종속성 계층 또 다른 옵션입니다. 다음을 실행하여 종속성 계층 구조를 볼 수 있습니다.
mvn 종속성:목록
따라서 Java 기반 웹 스크립트를 공유 프로젝트에 추가하려면 spring-webscripts를 종속성으로 추가해야 합니다. 다음과 같이 pom.xml을 편집하면 됩니다.
<의존성>
    <groupId>org.springframework.extensions.surf</groupId>
    <artifactId>스프링 웹스크립트</artifactId>
    <버전>1.2.0-M14</버전>
    <scope>제공</scope>
</의존성>
이제 Java 기반 웹 스크립트는 상위 클래스인 DeclarativeWebScript를 찾을 수 있습니다.
DeclarativeWebScript 클래스가 spring-webscripts 아티팩트에 포함되어 있다는 것을 어떻게 알았는지 궁금할 것입니다. 예를 들어 http://artifacts.alfresco.com 으로 이동하여 찾았습니다 . 클래스별로 검색하면 해당 클래스가 포함된 모든 유물이 표시됩니다.

자율 학습을 위한 기타 주제

이제 Alfresco Maven SDK를 사용하여 프로젝트를 생성하고 Alfresco 저장소로 사용하고 Alfresco Share를 구성하는 방법을 알았습니다. Alfresco 개발이 처음이라면 시작하기 위해 프로젝트를 구성하는 것이 정말 쉽다는 점에 동의하시기 바랍니다. 이미 Alfresco에 익숙하지만 여전히 기존 SDK를 사용하고 계시다면, 이것이 새로운 SDK로 전환하여 AMP를 만드는 데 도움이 되기를 바랍니다.
이 튜토리얼에서 다루지 않은 주제가 많이 있습니다. 나는 당신이 당신의 재량에 따라 탐색할 수 있도록 남겨두겠습니다. 그 중 일부는 다음과 같습니다.
  • Alfresco Maven SDK는 JRebel 이라는 도구와 함께 사용할 때 동적 클래스 다시 로드를 지원합니다 .
  • 이 튜토리얼에서는 AMP 원형을 다룹니다. 그러나 Alfresco Maven SDK에는 All-in-One이라는 또 다른 원형이 포함되어 있습니다. 이 원형은 SOLR을 포함한 완전한 Alfresco 설치를 제공합니다.
  • Alfresco Maven SDK는 Community Edition과 Enterprise Edition 모두에서 지원됩니다. Enterprise Edition의 아티팩트에 액세스하는 데 도움이 필요한 경우 Alfresco 지원에 문의하세요.

자세한 정보를 찾을 수 있는 곳

<= 1부
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION