설정 변경이 필요할 때마다 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 |