Java Application Ecexution on CommandLine

매번 jar파일을 보내는건 번거롭다. 이런경우에는 Maven을 이용해서 처리하는게 좋다.

스텐드얼론으로 실행시키는 경우에는 웹 어플리케이션도 tomcat이나 jboss에 얹는것보다는 was라이브러리를 써서 개별적으로 실행시키는게 유리한 경우도 있다.

<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>2.4</version>
				<executions>
					<execution>
						<phase>package</phase>
						<goals>
							<goal>attached</goal>
						</goals>
					</execution>
				</executions>
				<configuration>
					<descriptorRefs>
						<descriptorRef>jar-with-dependencies</descriptorRef>
					</descriptorRefs>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-dependency-plugin</artifactId>
				<version>2.8</version>
				<executions>
					<execution>
						<phase>install</phase>
						<goals>
							<goal>copy-dependencies</goal>
						</goals>
						<configuration>
							<outputDirectory>${project.build.directory}/lib</outputDirectory>
						</configuration>
					</execution>
				</executions>
			</plugin>

이 두 플러그인이 필수다.

이클립스로 export하면 편하게 설정이 되는건데 maven에서는 귀찮은 설정이 많이 필요하다. 같은 기능을 하는 다른 플러그인이 여러가지가 있으니 같은 해결책을 찾아도 많은 방법이 있을 수 있다.

윗쪽 플러그인은 jar파일에 의존성파일들을 포함시키라는 명령.

두번째건 lib디렉토리에 의존성 jar를 포함시키라는 명령

 

윗쪽걸로만 하고 실행시키면…class not found가 뜬다. 이클립스로 export해서 해보니 제대로 잘 되는거 보면…. 저 플러그인 셋팅이 제대로 동작을 안하는것같다. 설정을 잘못해줬거나… 다음에 다시 봐야겠다.

svn또는 git을 이용하여 소스코드를 최신버전을 업뎃한후

mvn install

java -classpath .:target/lib/*:target/{application.jar} full.qulified.class.name

완료.