'디렉토리 구조'에 해당되는 글 1건

  1. 2008.11.17 Buildr : 기본 프로젝트 디렉토리 레이아웃 변경 (2)
Buildr의 기본 프로젝트 구조는 Maven2의 그것과 거의 동일합니다.

  src
  |__main
  |    |__java              <-- Source files to compile
  |    |__resources      <-- Resources to copy
  |    |__webapp         <-- For WARs
  |__test
  |    |__java              <-- Source files to compile (tests)
  |    |__resources      <-- Resources to copy (tests)
target                       <-- Packages created here
  |__classes             <-- Generated when compiling
  |__resources          <-- Copied (and filtered) from resources
  |__test/classes       <-- Generated when compiling tests
  |__test/resources    <-- Copied (and filtered) from resources
reports                     <-- Test, coverage and other reports

Maven에서 기본 프로젝트 디렉토리 구조를 아래처럼 세팅하여 변경할 수 있었습니다.

 <build>
  <directory>target</directory>
  <sourceDirectory>src</sourceDirectory>
  <outputDirectory>web/WEB-INF/classes</outputDirectory>
  <resources>
   <resource>
    <directory>src</directory>
    <excludes>
     <exclude>**/*.java</exclude>
    </excludes>
   </resource>
  </resources>
    ... ....
   <plugin>
    <artifactId>maven-war-plugin</artifactId>
    <version>2.1-alpha-2</version>
    <configuration>
     <warSourceDirectory>web</warSourceDirectory>
     <webappDirectory>${project.build.directory}/webapp</webappDirectory>
    </configuration>
   </plugin>


Buildr도 디렉토리 구조를 바꿀 수 있습니다. 프로젝트 정의 메소드에 Layout 인스턴스를 전달해주면 됩니다.
( http://incubator.apache.org/buildr/extending.html#using_alternative_layouts )

my_layout = Layout.new
my_layout[:source, :main, :java] = 'src'
my_layout[:source, :main, :resources] = 'src'
my_layout[:source, :test, :java] = 'test'
my_layout[:source, :test, :resources] = 'test'
my_layout[:source, :main, :webapp] = 'web'

my_layout[:target, :main, :classes] = 'web/WEB-INF/classes'
my_layout[:target, :main, :resources] = 'web/WEB-INF/classes'
my_layout[:target, :test, :classes] = 'target/test-classes'
my_layout[:target, :test, :resources] = 'target/test-classes'
my_layout[:target, :main, :webapp] = 'target/webapp'
my_layout[:target, :main, :htdocs] = 'target/htdocs'

my_layout[:reports] = 'target/reports'

define "MyProject", :layout=>my_layout do

  project.version = VERSION_NUMBER
  project.group = GROUP
  manifest["Implementation-Vendor"] = COPYRIGHT
  ... ...
  resources.exclude '**/*.java'
  test.resources.exclude '**/*.java'
  ... ...
end


(위에서 :htdocs는 제가 임의로 사용한 심볼입니다)
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 에코지오

댓글을 달아 주세요

  1. BlogIcon Max 2008.11.18 11:04 신고  댓글주소  수정/삭제  댓글쓰기

    Maven책 보기에도 버거워서...

    분류하기 귀찮더라도 분류해주시면,
    관련글 읽기가 더 좋을텐데 하는 아쉬움이...
    (Buildr관련글 찾을려다 카테고리가 없어서....^^;;)



티스토리 툴바