명령줄 사용
JAR 파일을 두 번 클릭할 수 있는 또 다른 방법은 명령줄에서 AEM을 시작하거나 로컬 운영 체제 종류에 따라 스크립트(.bat
또는 .sh
)를 만드는 것입니다. 다음은 샘플 명령의 예입니다.
$ java -Xmx2048M -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=30303 -jar aem-author-p4502.jar -gui -r"author,localdev"
여기서 -X
은(는) JVM 옵션이고 -D
은(는) 추가 프레임워크 속성입니다. 자세한 내용은 AEM 인스턴스 배포 및 유지 관리 및 빠른 시작 파일에서 사용할 수 있는 추가 옵션을 참조하십시오.
Apache Maven 설치
Apache Maven 은(는) Java 기반 프로젝트의 빌드 및 배포 절차를 관리하는 도구입니다. AEM은 Java 기반 플랫폼이며 Maven은(는) AEM 프로젝트에 대한 코드를 관리하는 표준 방법입니다. AEM Maven 프로젝트 또는 AEM 프로젝트 이라고 할 때 사이트에 대한 모든 custom 코드를 포함하는 Maven 프로젝트를 참조합니다.
모든 AEM 프로젝트는 AEM Project Archetype 의 최신 버전을 사용하여 빌드해야 합니다. https://github.com/adobe/aem-project-archetype. AEM Project Archetype에서 일부 샘플 코드와 내용이 포함된 AEM 프로젝트의 부트스트랩을 제공합니다. AEM Project Archetype에는 프로젝트에서 사용하도록 구성된 AEM WCM Core Components 도 포함됩니다.
단계
- Apache Maven 다운로드
- Apache Maven을 설치하고 명령줄
PATH
에 설치가 추가되었는지 확인하십시오.- macOS 사용자는 Homebrew을(를) 사용하여 Maven을 설치할 수 있습니다.
- 새 명령줄 터미널을 열고 다음을 실행하여 Maven 이(가) 설치되었는지 확인합니다.
$ mvn --version
Apache Maven 3.3.9
Maven home: /Library/apache-maven-3.3.9
Java version: 1.8.0_111, vendor: Oracle Corporation
Java home: /Library/Java/JavaVirtualMachines/jdk1.8.0_111.jdk/Contents/Home/jre
Default locale: en_US, platform encoding: UTF-8
nexus.adobe.com
에서 AEM 아티팩트를 다운로드하도록 하려면 이전에 adobe-public
Maven 프로필을 추가해야 했습니다. 이제 모든 AEM 아티팩트를 Maven Central을 통해 사용할 수 있으며 adobe-public
프로필이 필요하지 않습니다.번들이 설치됨 상태입니다.
모든 번들(조각 제외)은 Active 상태여야 합니다. 코드 번들이 설치됨 상태로 표시되면 해결해야 하는 문제가 있습니다. 대부분의 경우 이는 종속성 문제입니다.
위의 스크린샷에서 WKND Core bundle은(는) 설치됨 상태입니다. 이는 번들에 AEM 인스턴스에서 사용할 수 있는 것과 다른 버전의 com.adobe.cq.wcm.core.components.models
이(가) 필요하기 때문입니다.
사용할 수 있는 유용한 도구는 종속성 파인더: http://localhost:4502/system/console/depfinder입니다. AEM 인스턴스에서 사용할 수 있는 버전을 검사하려면 Java™ 패키지 이름을 추가합니다.
위의 예를 계속 진행하면 AEM 인스턴스에 설치된 버전이 번들에 필요한 12.2 와 12.6 임을 알 수 있습니다. 거기에서 거꾸로 작업하여 AEM의 Maven 종속성이 AEM 프로젝트의 Maven 종속성과 일치하는지 확인할 수 있습니다. 에서 위의 예제 Core Components v2.2.0 이(가) AEM 인스턴스에 설치되었지만 코드 번들이 v2.2.2 에 종속되어 빌드되었으므로 종속성 문제가 발생합니다.
Sling 모델 등록 확인
AEM 구성 요소는 모든 비즈니스 논리를 캡슐화하고 HTL 렌더링 스크립트가 깔끔하게 유지되도록 Sling Model에 의해 지원되어야 합니다. 슬링 모델을 찾을 수 없는 문제가 발생하는 경우 콘솔에서 Sling Models을(를) 확인하는 것이 좋습니다. http://localhost:4502/system/console/status-slingmodels. 이는 슬링 모델이 등록되었는지 여부와 해당 모델이 연결된 리소스 유형(구성 요소 경로)을 알려줍니다.
구성 요소 리소스 유형 wknd/components/content/byline
에 연결된 Sling Model, BylineImpl
의 등록을 표시합니다.
CSS 또는 JavaScript 문제
대부분의 CSS 및 JavaScript 문제의 경우 브라우저의 개발 도구를 사용하는 것이 문제를 해결하는 가장 효과적인 방법입니다. AEM 작성자 인스턴스에 대해 개발할 때 문제를 좁히려면 페이지를 "게시됨"으로 보는 것이 좋습니다.
페이지 속성 메뉴를 열고 게시됨으로 보기를 클릭합니다. 이렇게 하면 AEM 편집기 없이 쿼리 매개 변수가 wcmmode=disabled(으)로 설정된 페이지가 열립니다. 이렇게 하면 AEM 작성 UI가 효과적으로 비활성화되고 프론트엔드 문제 해결/디버깅이 훨씬 쉬워집니다.
프론트엔드 코드를 개발할 때 자주 발생하는 다른 문제는 오래되었거나 오래된 CSS/JS가 로드되고 있습니다. 첫 번째 단계로, 브라우저 기록이 지워졌는지 확인하고 필요한 경우 시크릿 브라우저 또는 새 세션을 시작합니다.
클라이언트 라이브러리 디버깅
여러 클라이언트 라이브러리를 포함하도록 다양한 카테고리 및 임베디드 방법을 사용하면 문제를 해결하는 데 번거로울 수 있습니다. AEM은 이 작업에 도움이 되는 몇 가지 도구를 노출합니다. 가장 중요한 도구 중 하나는 AEM에서 LESS 파일을 다시 컴파일하고 CSS를 생성하도록 하는 클라이언트 라이브러리 다시 빌드입니다.
- 덤프 라이브러리 - AEM 인스턴스에 등록된 모든 클라이언트 라이브러리를 나열합니다. <host>/libs/granite/ui/content/dumplibs.html
- 테스트 출력 - 사용자가 범주를 기반으로 하는 clientlib의 예상 HTML 출력을 볼 수 있습니다. <host>/libs/granite/ui/content/dumplibs.test.html
- 라이브러리 종속성 유효성 검사 - 찾을 수 없는 모든 종속성 또는 포함된 범주를 강조 표시합니다. <host>/libs/granite/ui/content/dumplibs.validate.html
- 클라이언트 라이브러리 다시 빌드 - 사용자가 AEM에서 모든 클라이언트 라이브러리를 다시 빌드하거나 클라이언트 라이브러리의 캐시를 무효화할 수 있습니다. 이 도구는 AEM에서 생성된 CSS를 다시 컴파일하도록 할 수 있으므로 LESS로 개발할 때 효과적입니다. 일반적으로 캐시를 무효화한 다음 페이지 새로 고침을 수행하는 것이 모든 라이브러리를 다시 작성하는 것보다 더 효과적입니다. <host>/libs/granite/ui/content/dumplibs.rebuild.html