Java

java project 실행가능한 jar file 만들기

Yoon0120 2018. 8. 24. 14:28

특정 폴더의 파일을 읽어서 DB로 INSERT하고 해당 파일은 backup 폴더로 이동시키는 프로그램을 작성하였다.


해당 프로젝트는 jar file로 만들어 linux cron 기능을 이용하여 매일 특정시간에 실행할 것이다.


maven 을 이용하여 jar file을 build 하는 방법을 정리하고자 한다.


pom.xml에 maven plugin 을 이용하여 적용할 option을 설정한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
<build>
    <sourceDirectory>src</sourceDirectory>
    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
        <configuration>
          <source>1.7</source>
          <target>1.7</target>
        </configuration>
      </plugin>
      <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <finalName>crawlFile</finalName>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>lib/</classpathPrefix>
                        <mainClass>crawl.file.main.FileToDBController</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-dependency-plugin</artifactId>
            <executions>
                <execution>
                    <id>copy</id>
                    <phase>install</phase>
                    <goals>
                        <goal>copy-dependencies</goal>
                    </goals>
                    <configuration>
                        <outputDirectory>
                            ${project.build.directory}/lib
                        </outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <version>2.2.1</version>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <mainClass>crawl.file.main.FileToDBController</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
  </build>
cs


mainClass 부분만 수정 적용하면 됨(main method 가 있는 클래스)





프로젝트 우클릭하여 Run As > Maven build



Goals 부분에 clean install (maven plugin option  : https://maven.apache.org/plugins/index.html )

Goals 부분에 dependency:copy-dependencies 넣어서 run하면 library도 같이 포함되어 빌드됨





build가 성공하면 해당 프로젝트의 target 폴더에 jar file이 생성된다.(jar file name은 pom.xml의 finalName에서 설정가능