티스토리 툴바


DEVELOPMENT/JAVA2009/11/16 16:10
매번 찾기는 귀찮고 소스 뒤지기도 귀찮은 것들을 정리함.
bnd 플러그인 관련된건 나중에 따로..

자바소스 설정

<build>
    <sourceDirectory>src/main/java</sourceDirectory>
</build>

자바소스 여러 개  설정

<plugin>
    <groupId>org.codehaus.mojo</groupId>
    <artifactId>build-helper-maven-plugin</artifactId>
    <version>1.2</version>
    <executions>
     <execution>
      <id>add-source-dir</id>
      <phase>generate-sources</phase>
      <goals>
       <goal>add-source</goal>
      </goals>
      <configuration>
       <sources>
         <source>another/src/main/java</source>
         <source>others/src</source>
       </sources>
      </configuration>
     </execution>
    </executions>
  </plugin>


저장소 추가 방법


    <repositories>
        <repository>
            <id>저장소 ID</id>
            <url>저장소 URL</url>
        </repository>
    </repositories>

개인적으로만 저장소를 쓴다면 .m2\settings.xml에서
profiles > profile > repositories 밑에 repository 설정을 넣으면 됨.

컴파일러 소스 및 타겟 버전 설정, UTF-8 인코딩 지정 방법

<build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>2.0.2</version>
                <configuration>
                    <source>1.6</source>
                    <target>1.6</target>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
</build>

클래스패스 설정과 -jar 옵션으로 시작할 때 사용할 메인 클래스 지정

    <build>
        <plugins>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-jar-plugin</artifactId>
                <version>2.2</version>
                <configuration>
                    <archive>
                        <manifest>
                            <addClasspath>true</addClasspath>
                        </manifest>
                        <manifestEntries>
                            <Main-Class>org.krakenapps.main.Kraken</Main-Class>
                        </manifestEntries>
                    </archive>
                </configuration>
            </plugin>
        </plugins>
    </build>

의존하는 라이브러리를 포함하여 하나의 JAR 파일로 패키징
POM에 아래 설정해놓고 콘솔에서 mvn assembly:assembly 명령

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <archive>
                        <manifest>
                            <Main-Class>org.krakenapps.main.Kraken</Main-Class>
                        </manifest>
                    </archive>
                    <descriptorRefs>
                        <descriptorRef>jar-with-dependencies</descriptorRef>
                    </descriptorRefs>
                </configuration>
            </plugin>
        </plugins>
    </build>

<!--//-->
<plugin>
   <groupId>org.apache.maven.plugins</groupId>
   <artifactId>maven-war-plugin</artifactId>
   <configuration>
      <warSourceDirectory>src/main/webapp</warSourceDirectory>   
      <!--<warSourceExcludes>common/**</warSourceExcludes> 특정 폴더 제외-->
   </configuration>
    </plugin>
warSourceExcludes는 warSourceDirectory를 기준

기본 디렉토리 변경

- 기존
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="questionbox">
        <wb-resource deploy-path="/" source-path="/src/main/webapp"/>
 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/resources"/>
 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/main/java"/>
 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src/test/java"/>
 <property name="context-root" value="questionbox"/>
 <property name="java-output-path"/>
    </wb-module>
</project-modules>

- 변경후
<?xml version="1.0" encoding="UTF-8"?>
<project-modules id="moduleCoreId" project-version="1.5.0">
    <wb-module deploy-name="questionbox">
        <wb-resource deploy-path="/" source-path="webapp"/>
 <wb-resource deploy-path="/WEB-INF/classes" source-path="/src"/>
 <property name="context-root" value="questionbox"/>
 <property name="java-output-path"/>
    </wb-module>
</project-modules>

메이븐 /src/main/java에 java 외에 파일도 target/classes로 이동

<resources>
    <resource>
        <directory>src/main/java</directory>
        <includes>
     <include>**/*</include>
        </includes>
        <excludes>
     <exclude>**/*.java</exclude>
        </excludes>
    </resource>
    <resource>
        <directory>src/main/resources</directory>
    </resource>       
</resources>


레포팅 관련
 <reporting>
        <plugins>    
<!-- FindBugs 리포트 생성 플러그인 -->
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>findbugs-maven-plugin</artifactId>
                <version>2.1</version>
                <configuration>
                    <forceEncoding>UTF-8</forceEncoding>
                    <findbugsXmlOutput>true</findbugsXmlOutput>
                    <findbugsXmlWithMessages>
                        true
                    </findbugsXmlWithMessages>
                    <xmlOutput>true</xmlOutput>
                    <xmlOutputDirectory>
                        ${basedir}/target/site
                    </xmlOutputDirectory>
                </configuration>
            </plugin>
    
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>javancss-maven-plugin</artifactId>
                <version>2.0</version>
                <configuration>
                    <forceEncoding>UTF-8</forceEncoding>
                    <lineThreshold>30</lineThreshold>
                    <xmlOutputDirectory>
                        ${basedir}/target/site
                    </xmlOutputDirectory>
                    <failOnViolation>true</failOnViolation>
                    <ccnLimit>10</ccnLimit>
                    <ncssLimit>100</ncssLimit>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>jdepend-maven-plugin</artifactId>
                <version>2.0-beta-2</version>
            </plugin>
<!-- PMD 리포트 생성 플러그인 -->
            <plugin>
    <artifactId>maven-pmd-plugin</artifactId>
        <configuration>
             <rulesets>
                 <ruleset>/rulesets/basic.xml</ruleset>
                 <ruleset>/rulesets/unusedcode.xml</ruleset>
             </rulesets>
             <sourceEncoding>UTF-8</sourceEncoding>
             <targetJdk>1.5</targetJdk>
        </configuration>
   </plugin>
   <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>2.3</version>
            </plugin>
        </plugins>
    </reporting>
저작자 표시
Posted by 맹돌이
TAG ,