설정 변경이 필요할 때마다 jar 를 변경하지 않도록 설정 파일등은 외부로 빼도록 해보자.
여기서는 log4j2.xml 설정을 외부로 옮기고 log도 파일로 기록되도록 설정한다.
resource 폴더의 log4j2.xml 설정파일을 수정
<?xml version="1.0" encoding="UTF-8"?>
<Configuration status="INFO">
<Appenders>
<Console name="Console" target="SYSTEM_OUT">
<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n" />
</Console>
<File name="MyFile" filename="logs/app.log">
<PatternLayout>
<Pattern>%d %p %c{1.} [%t] %m%n</Pattern>
</PatternLayout>
</File>
</Appenders>
<Loggers>
<Root level="DEBUG">
<!-- <appenderref ref="MyFile" /> -->
<AppenderRef ref="Console" />
</Root>
</Loggers>
</Configuration>
pom.xml 의 plugin 설정 변경, jar플러그인에 열외 항목을 추가하고, resource 관리를 통해 외부 폴더로 파일을 옮겨준다.
<plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-jar-plugin</artifactId> <configuration> <excludes> <exclude>**/log4j2.xml</exclude> </excludes> <archive> <manifest> <mainClass>printTime.GetTime</mainClass> <addClasspath>true</addClasspath> <classpathPrefix>libs/</classpathPrefix> </manifest> </archive> </configuration> </plugin> </plugins> <resources> <resource> <directory>src/main/resources</directory> <targetPath>../conf</targetPath> </resource> </resources>
jar를 실행해 보자. conf 파일을 외부로 뺐으므로 옵션을 선언해준다.
java -Dlog4j.configurationFile=conf\log4j2.xml -jar printTime.jar
폴더구조는 아래와 같다.
libs 폴더를 외부에 두지 않고 모든 라이브러리를 내부에 포함하고자 한다면 몇가지 플러그인을 사용하여 처리할 수 있다. shade 플러그인을 적용해 본다.
<plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <executions> <execution> <goals> <goal>shade</goal> </goals> <configuration> <shadedartifactAttached>true</shadedartifactAttached> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer"> <manifestEntries> <Main-Class>printTime.GetTime</Main-Class> <Class-Path>.</Class-Path> <Build-Number>1</Build-Number> </manifestEntries> </transformer> </transformers> </configuration> </execution> </executions> </plugin>
maven build > goals = "package shade:shade"
폴더구조는 아래와 같다.
libs 폴더는 jar 내부에 포함된다.
'Gradle' 카테고리의 다른 글
| Maven 으로 실행가능한 jar 를 만들기 3 (0) | 2019.01.10 |
|---|---|
| Maven 으로 실행가능한 jar 를 만들기 2 (0) | 2019.01.10 |
| Maven 으로 실행가능한 jar 를 만들기 1 (0) | 2019.01.09 |
| [gradle] 그래들 설정으로 속도 높이기, 전역변수 별도 파일에 설정 하기 (0) | 2014.09.29 |


