BackGround : 저는 Spring과 Maven을 사용하는 독립 실행 형 응용 프로그램을 개발 중입니다. 원격 서버에 배포하고 테스트 할 수 있도록 내 응용 프로그램에서 jar 파일을 만들고 싶습니다. 제가 일식을 통해 실행 항아리 등이 병을 수출하고 언제 문제 아래에 직면하고있다Maven을 사용하여 jar에 의존성을 패키지하는 방법은 무엇입니까?
는
(1), 나는 예외 아래 얻고있다.Exception in thread "main"
org.springframework.beans.factory.parsing.BeanDefinitionParsingException: Configuration problem: Unable to locate Spring NamespaceHan
dler for XML schema namespace [http://www.springframework.org/schema/context]
Offending resource: class path resource [applicationContext.xml]
는 spring.handlers 파일 네임 스페이스 충돌과 함께 위의 문제는, 그래서, 아래와 같이 메이븐의 플러그인을 사용하여 항아리를 만들 생각입니다.
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>com.comcast.start.Application</mainClass>
</manifest>
</archive>
<shadedArtifactAttached>true</shadedArtifactAttached>
<shadedClassifierName>jar-with-dependencies</shadedClassifierName>
<finalName>ds</finalName>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.handlers</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.schemas</resource>
</transformer>
<transformer implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
<resource>META-INF/spring.tooling</resource>
</transformer>
</transformers>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<executions>
<execution>
<id>copy-dependencies</id>
<phase>package</phase>
<goals>
<goal>copy-dependencies</goal>
</goals>
<configuration>
<outputDirectory>${project.build.directory}/alternateLocation</outputDirectory>
<overWriteReleases>false</overWriteReleases>
<overWriteSnapshots>false</overWriteSnapshots>
<overWriteIfNewer>true</overWriteIfNewer>
</configuration>
</execution>
</executions>
</plugin>
하지만 여기서 문제는 종속 라이브러리를 내 jar 파일에 복사하는 플러그인을 찾을 수 없다는 것입니다. 복사 의존성 플러그인은 파일을 내 작업 공간으로 복사하지만 라이브러리를 내 JAR 파일에 배치하지 않습니다.
원격 컴퓨터에서이 독립 실행 형 jar를 실행해야하므로 jar이 만들어 질 때 모든 종속 라이브러리가이 jar 안에 패키징되어야합니다.
아이디어가 있으시면 제안 해주십시오. 감사합니다
어떤 종류의 서버에 대해 이야기하고 있습니까? JBoss/Tomcat/GLassfish? – khmarbaise
서버가 jBoss입니다. – Gendaful