문제

Maven 2는 여기에 설명된 프로젝트의 표준 디렉터리 레이아웃을 사용합니다.

http://maven.apache.org/guides/introduction/introduction-to-the-standard-directory-layout.html

내가 궁금한 것은 :일반 바닐라 Java 라이브러리, Java EE 및 WebApp 프로젝트 외에 다른 프로젝트에 권장되는 규칙이 있습니까?특히 개미 파일, 시작 스크립트, 구성 파일, 샘플 애플리케이션 등을 배치할 위치입니다.

또한 src/ 디렉토리 트리 외부에 파일을 배치하는 규칙은 무엇입니까?예를 들어, 문서를 doc/(src의 형제) 아래에 두는 것이 일반적입니까?

이러한 규칙이 정리된 페이지가 있습니까?그렇지 않다면 다른 독자들이 자신의 프로젝트에서 사례를 제공할 수 있습니까?

도움이 되었습니까?

해결책

데스크탑 애플리케이션을위한 공식 레이아웃이 있다고 생각하지 않지만 이것이 우리가 사용하는 레이아웃입니다.

  • src/main/config- 구성 파일, 복사 및 필터링 된 $ {project.build.directory}/config.
  • SRC/MAIN/SCRIPTS -SH, BAT, README 및 $ {project.build.directory}로 복사 및 필터링 된 기타 일반 텍스트 파일.
  • src/main/bin- 이진 파일 ~ 아니다 필터링 및 $ {project.build.directory}로 복사했습니다.
  • SRC/MAIN/빌드 - 추가 스크립트, 개미 파일 또는 빌드 프로세스에서 사용하지만 응용 프로그램에 포함되지 않은 리소스.
  • SRC/메인/어셈블리 - 어셈블리 디스크립터 응용 프로그램 어셈블리를 작성합니다.
  • Maven-Dependency 플러그인을 사용하여 종속성을 $ {project.build.directory}/lib로 복사합니다.
  • 보너스 포인트 공유 어셈블리 디스크립터 JAR을 사용하는 경우 구성 및 LIB 디렉토리와 함께 표준 파일 유형이 포함되어있는 모든 프로젝트와 공유합니다. 포함 할 기본 파일 유형의 좋은 세트는 .sh, .bat 및 .exe가 실행 가능한 권한이 있습니다. .jar, .zip, .txt, .pdf, .xml, .properties, .conf, .ico, .png, .jpg 표준 권한이있는 .jpg.
  • Maven-Jar 플러그인을 사용하여 Config Directory 및 Lib/ Prefix를 클래스 경로에 추가하여 런닝 가능한 JAR을 만듭니다.
  • Maven-Assembly 플러그인 및 어셈블리 디스크립터를 사용하여 응용 프로그램 어셈블리를 구축하는 설치 프로그램 프로필을 추가하십시오. 그런 다음이 어셈블리는 필요한 경우 별도의 설치 관리자 프로젝트에 의해 소비 될 수 있습니다.
  • SRC/ 레벨에 다른 것을 넣지 마십시오. 대신 SRC/사이트/디렉토리 (예 : SRC/Site/Sphinx) 또는 SRC/DOC 내부에 문서를 작성하십시오.
  • 위의 모든 구성을 부모/기업 POM에 넣어 모든 프로젝트와 공유하십시오. Maven 의존성, Maven-Resources, Maven-Jar 및 Maven-Assembly Plugins In Project를 참조하여 구성이 거의없는 전체 애플리케이션을 구축하기 위해 프로젝트를 참조하십시오 (Maven-Jar 플러그인의 메인 클래스를 설정하는 것을 잊지 마십시오). .

다른 팁

추가 구성 파일을 배치하는 기본 폴더는 src/main/java/resources 아래에 있습니다.보통 그 아래에 하위 디렉터리를 만들었습니다.테스트에는 자체 구성 파일 src/test/resources가 있을 수 있습니다.

pom.xml의 빌드 섹션에 있는 지시문을 사용하여 추가 리소스 디렉터리를 지정하고 대상 디렉터리의 특정 위치에 파일을 복사할 위치를 지정할 수 있습니다.일반적으로 사용하려는 언어나 프레임워크에 대한 규칙이 발생합니다.어떤 경우에는 상위 pom.xml에 혼란이 숨겨질 수 있습니다.

보다 http://maven.apache.org/pom.html#Resources

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top