Maven을 사용하여 Struts1.x 프로젝트 만들기

7925 단어 자바MavenStruts
Struts1.x의 개발도 이미 종료되어 있어 지금 갱신규에서 Struts1.x의 환경을 구축하는 것은 거의 없다고 생각합니다.
정보도 적어지고 있기 때문에, 만약 신규로 Struts1.x의 프로젝트를 만들고 싶었을 때에 기억할 수 있도록 남겨 둡니다.

Struts1.x 프로젝트 만들기



이번에는 다음과 같은 조건을 생각해 보겠습니다.
  • Eclipse (Luna)를 사용하여 개발하기
  • m2e, WTP를 사용하여 개발하기
  • 구성은 Maven에서 구축합니다
  • Java8 사용

  • Maven 프로젝트 만들기



    Struts1 Blank Archetype을 사용하여 프로젝트를 만듭니다.

    Struts1 Blank Archetype의 소스 체크아웃


    svn co http://svn.apache.org/repos/asf/struts/maven/trunk/struts-archetype-blank
    

    빌드 및 설치


    cd struts-archetype-blank
    mvn install
    

    Struts1 프로젝트 만들기


    mvn archetype:generate \
     -DarchetypeGroupId=org.apache.struts \
     -DarchetypeArtifactId=struts-archetype-blank \
     -DarchetypeVersion=1.3.5-SNAPSHOT \
     -DgroupId=com.example \
     -DpackageName=com.example.projectname  \
     -DartifactId=my-webapp
    
    % mvn archetype:generate \
    >  -DarchetypeGroupId=org.apache.struts \
    >  -DarchetypeArtifactId=struts-archetype-blank \
    >  -DarchetypeVersion=1.3.5-SNAPSHOT \
    >  -DgroupId=com.example \
    >  -DpackageName=com.example.projectname  \
    >  -DartifactId=my-webapp
    [INFO] Scanning for projects...
    [INFO]                                                                         
    [INFO] ------------------------------------------------------------------------
    [INFO] Building Maven Stub Project (No POM) 1
    [INFO] ------------------------------------------------------------------------
    [INFO] 
    [INFO] >>> maven-archetype-plugin:2.3:generate (default-cli) > generate-sources @ standalone-pom >>>
    [INFO] 
    [INFO] <<< maven-archetype-plugin:2.3:generate (default-cli) < generate-sources @ standalone-pom <<<
    [INFO] 
    [INFO] --- maven-archetype-plugin:2.3:generate (default-cli) @ standalone-pom ---
    [INFO] Generating project in Interactive mode
    [WARNING] Archetype not found in any catalog. Falling back to central repository (http://repo.maven.apache.org/maven2).
    [WARNING] Use -DarchetypeRepository=<your repository> if archetype's repository is elsewhere.
    Downloading: http://repo.maven.apache.org/maven2/org/apache/struts/struts-archetype-blank/1.3.5-SNAPSHOT/maven-metadata.xml
    [INFO] Using property: groupId = com.example
    [INFO] Using property: artifactId = my-webapp
    Define value for property 'version':  1.0-SNAPSHOT: : 
    [INFO] Using property: package = com.example
    Confirm properties configuration:
    groupId: com.example
    artifactId: my-webapp
    version: 1.0-SNAPSHOT
    package: com.example
     Y: : 
    [INFO] ----------------------------------------------------------------------------
    [INFO] Using following parameters for creating project from Old (1.x) Archetype: struts-archetype-blank:1.3.5-SNAPSHOT
    [INFO] ----------------------------------------------------------------------------
    [INFO] Parameter: basedir, Value: /Users/xxxx/Desktop
    [INFO] Parameter: package, Value: com.example
    [INFO] Parameter: groupId, Value: com.example
    [INFO] Parameter: artifactId, Value: my-webapp
    [INFO] Parameter: packageName, Value: com.example
    [INFO] Parameter: version, Value: 1.0-SNAPSHOT
    [INFO] project created from Old (1.x) Archetype in dir: /Users/xxxx/Desktop/my-webapp
    [INFO] ------------------------------------------------------------------------
    [INFO] BUILD SUCCESS
    [INFO] ------------------------------------------------------------------------
    [INFO] Total time: 21.546 s
    [INFO] Finished at: 2015-06-10T15:43:20+09:00
    [INFO] Final Memory: 12M/119M
    [INFO] ------------------------------------------------------------------------
    

    Maven 프로젝트가 생성되었습니다.
    % tree my-webapp 
    my-webapp
    ├── pom.xml
    └── src
        └── main
            ├── resources
            │   └── MessageResources.properties
            └── webapp
                ├── WEB-INF
                │   ├── struts-config.xml
                │   ├── validation.xml
                │   └── web.xml
                ├── index.jsp
                └── pages
                    └── Welcome.jsp
    
    6 directories, 7 files
    

    struts-blank의 내용과 같은 내용이 만들어진 것 같습니다.
    옛날에는 Struts의 사이트에서 struts-blank.zip이라든지 다운로드 할 수 있었던 것 같습니다만, 지금은 대상의 struts-x.x.x-bin.zip을 회답해, struts-blank.war를 꺼내 해동하는 밖에 방법이 없다 같아요.
    그것에 비하면, 상당히 편하네요.

    Eclipse로 가져오기



    이대로 받아들여도 괜찮습니다만, 컴파일러의 설정이 Java 1.5를 사용하게 되어 있습니다.
    Java 8을 사용하도록 설정을 변경합니다.

    Java8로 변경



    pom.xml
                <plugin>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                       <source>1.8</source>
                       <target>1.8</target>
                    </configuration>
                </plugin>
    
    

    84행, 85행을 1.5에서 1.8로 변경합니다.

    Eclipse로 가져오기



    Eclipse -> Import -> Maven -> Exsiting Maven Project
    방금 만든 my-webapp를 가져옵니다.



    Tomcat8에서 확인



    서버에서 Tomcat8을 만들고 배포합니다.

    안전하게 표시되었습니다.



    요약



    이제 Struts의 환경을 만들지 않을지도 모릅니다만, 꽤 편하게 구축할 수 있었습니다.
    Java8에서도 Struts1.3.x는 문제없이 작동합니다.

    다음 번에는 JavaEE7과 Struts를 결합해 보겠습니다.
    Struts1.3 + EJB3.1이라든지 재미있을 것 같네요.

    좋은 웹페이지 즐겨찾기