Java

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

특정 폴더의 파일을 읽어서 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에서 설정가능