2013-12-18 79 views
0

我创建了Spring Standalone Application,在那个项目中我有Java类,Spring配置文件(applicationContext.xml)和包含spring的pom.xml文件依赖。Maven:将依赖关系和spring bean配置文件添加到jar文件中

这是我的项目的结构:

ExampleProject 
|-- src/main/java 
    |--org.example 
     |--java Classes(MainApp.java) 
|-- applicationContext.xml 
|-- src/main/resource 
|-- src 
|-- target 
|-- pom.xml 

问题: 但我的问题是使用Maven的大会创建的jar文件时,插件是只增加了Maven依赖和java类,但不是弹簧配置文件。可以为我提供将依赖关系和spring bean配置文件添加到jar文件的良好解决方案

下面是pom。 XML供大家参考

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
<modelVersion>4.0.0</modelVersion> 
<groupId>com.iton.createjarProject</groupId> 
<artifactId>createjarProject</artifactId> 
<version>0.0.1-SNAPSHOT</version> 
<properties> 
    <org.springframework.version>3.0.5.RELEASE</org.springframework.version> 
</properties> 
<dependencies> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-core</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-expression</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-beans</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-aop</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-context</artifactId> 
     <version>${org.springframework.version}</version> 
    </dependency> 

</dependencies> 
<build> 
     <plugins> <plugin> 
<artifactId>maven-dependency-plugin</artifactId> 
<executions> 
    <execution> 
    <id>unpack-dependencies</id> 
    <phase>prepare-package</phase> 
    <goals> 
     <goal>unpack-dependencies</goal> 
    </goals> 
    <configuration> 
     <outputDirectory>${project.build.directory}/classes</outputDirectory> 
    </configuration> 
    </execution> 

</executions> 
</plugin> 


<plugin> 
<groupId>org.apache.maven.plugins</groupId> 
<artifactId>maven-jar-plugin</artifactId> 
<executions> 
    <execution> 
    <id>unpack-dependencies</id> 
    <phase>package</phase> 
    </execution> 
</executions> 
<configuration> 
    <archive> 
    <manifest> 
     <addClasspath>true</addClasspath> 
     <classpathPrefix>lib/</classpathPrefix> 
     <mainClass>SimpleKeyLogger</mainClass> 
    </manifest> 
    </archive> 
</configuration> 
</plugin> 

     </plugins> 


</build> 


</project> 
+0

通过配置文件,您的意思是说了'applicationContext.xml'?还有什么是在你的'src/main/resources' –

回答

1

Maven convention是应用程序资源文件(如Spring上下文文件)应放置在src/main/resources - 除非已经在pom.xml明确重新定义。 Maven将在该文件夹中提取任何内容,并在打包应用时将其放入工件中。

所以将你的applicationContext.xmlsrc/main/resources(和它应该被称为的src/main/资源没有的src/main/资源

+0

非常感谢你的解决方案...它正在工作...如果有任何疑问,我会添加评论 – user2323555