독립 실행 형 응용 프로그램에서 Maven을 사용하고 있으며 여기 답변 중 하나에서 언급했듯이 JAR 파일의 모든 종속성을 라이브러리 폴더 안에 패키징하고 싶습니다.
Maven을 사용하여 종속성이있는 실행 가능한 JAR을 어떻게 만들 수 있습니까?
최종 JAR 파일에 maven-shade-plugin.m2 폴더의 Maven 계층과 같은 폴더 형태로 종속성을 넣는 것과는 달리 JAR 파일로 종속성을 포함하는 라이브러리 폴더가 있어야 합니다.
글쎄, 실제로 현재 구성은 내가 원하는 것을 수행하지만 응용 프로그램을 실행할 때 JAR 파일을로드하는 데 문제가 있습니다. 수업을로드 할 수 없습니다.
내 구성은 다음과 같습니다.
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>prepare-package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/classes/lib</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>com.myapp.MainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>install</id>
<phase>install</phase>
<goals>
<goal>sources</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>2.5</version>
<configuration>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
프로젝트는 Eclipse에서 잘 실행되고 JAR 파일은 원하는대로 최종 JAR 파일 내의 라이브러리 폴더에 저장되지만 대상 폴더에서 최종 JAR 파일을 실행하면 항상 다음을 얻습니다 ClassNotFoundException.
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/context/ApplicationContext
Caused by: java.lang.ClassNotFoundException: org.springframework.context.ApplicationContext
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: com.myapp.MainClass. Program will exit.
이 예외를 어떻게 수정할 수 있습니까?
com.myapp.MainClass가 아닌 com.tastycafe.MainClass.