매번 찾기는 귀찮고 소스 뒤지기도 귀찮은 것들을 정리함.
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>
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>
<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>
<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>
<artifactId>cobertura-maven-plugin</artifactId>
<version>2.3</version>
</plugin>
</plugins>
</reporting>
'DEVELOPMENT > JAVA' 카테고리의 다른 글
| [Spring] dbcp와 c3p0 커넥션 풀 유지하기 (0) | 2009/11/25 |
|---|---|
| [java] 저장소 정보 확인 (0) | 2009/11/24 |
| 자주 쓰는 Maven 설정 정리 (0) | 2009/11/16 |
| [ibatis]동적 컬럼 생성시 컬럼정보를 제대로 가져오지 못하는 현상 (1) | 2009/11/12 |
| JSONObject를 이용한 json 사용하기 (0) | 2009/11/04 |
| ibatis 로그 남기기 (0) | 2009/10/08 |