2012-04-05 66 views
8

我需要一个示例pom文件来为我的spring项目创建一个jar文件。如何在创建jar文件时指定为资源创建目录和文件夹。我可以使用pom创建jar文件。但我需要将我的applicationContext.xml包含在我的jar文件中。如何使用maven pom.xml创建jar

如何在maven中做到这一点?

回答

9

怎么做,这是解释here

后细节此POM,它使用Maven的JAR-插件做到这一点,我已经写在以前的工作很多劲歌看起来几乎相同这一点。希望这有助于

<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>org.foo</groupId> 
    <artifactId>my-app</artifactId> 
    <packaging>jar</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>my-app</name> 
    <url>http://maven.apache.org</url> 
    <build> 
<plugins> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-compiler-plugin</artifactId> 
    </plugin> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-eclipse-plugin</artifactId> 
    </plugin> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-jar-plugin</artifactId> 
    <configuration> 
     <archive> 
     <manifest> 
      <addClasspath>true</addClasspath> 
      <mainClass>org.foo.App</mainClass> 
     </manifest> 
     </archive> 
    </configuration> 
    </plugin> 
    <plugin> 
    <groupId>org.apache.maven.plugins</groupId> 
    <artifactId>maven-surefire-plugin</artifactId> 
    </plugin> 
</plugins> 
</build> 
    <dependencies> 
    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>3.8.1</version> 
     <scope>test</scope> 
    </dependency> 
    </dependencies> 
</project> 
+0

谢谢。如何创建资源文件夹放置的applicationContext.xml? – Jessie 2012-04-06 00:04:17

+1

请参阅下面的@ matsev的答案。 [Maven资源插件](http://maven.apache.org/plugins/maven-resources-plugin/examples/resource-directory.html)中给出的例子也可能有帮助。 – user944849 2012-04-06 03:36:44

6

Maven使用约定优于配置,因此所有标准的Maven项目具有相同的folder structure。由于应用程序上下文文件是一个资源,因此应将其置于src/main/resources文件夹(或其子文件夹之一)中。

0

http://maven.apache.org/maven-v4_0_0.xsd“> 4.0.0 com.tridenthyundai.ains tridenthyundai 战争 1.0-快照 三叉戟现代的Maven的webapp http://maven.apache.org

<!-- <repositories> <repository> <id>eclipselink</id> <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url> 
    </repository> </repositories> --> 

<properties> 
    <spring.version>3.0.5.RELEASE</spring.version> 
    <junit.version>4.11</junit.version> 
    <jdk.version>1.7</jdk.version> 
    <jetty.version>8.1.8.v20121106</jetty.version> 
</properties> 

<dependencies> 

    <!-- Spring 3 dependencies --> 

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

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

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

    <!-- Apache Commons file upload --> 
    <dependency> 
     <groupId>commons-fileupload</groupId> 
     <artifactId>commons-fileupload</artifactId> 
     <version>1.2.2</version> 
    </dependency> 

    <!-- Apache Commons IO --> 
    <dependency> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>1.3.2</version> 
    </dependency> 

    <dependency> 
     <groupId>junit</groupId> 
     <artifactId>junit</artifactId> 
     <version>${junit.version}</version> 
     <scope>test</scope> 
    </dependency> 

    <dependency> 
     <groupId>jstl</groupId> 
     <artifactId>jstl</artifactId> 
     <version>1.2</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>javax.servlet-api</artifactId> 
     <version>3.0.1</version> 
    </dependency> 

    <dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>jsp-api</artifactId> 
     <version>2.0</version> 
     <scope>provided</scope> 
    </dependency> 

    <dependency> 
     <groupId>log4j</groupId> 
     <artifactId>log4j</artifactId> 
     <version>1.2.9</version> 
    </dependency> 

    <!-- See http://wiki.eclipse.org/EclipseLink/Maven --> 
    <dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>eclipselink</artifactId> 
     <version>2.0.0</version> 
    </dependency> 

    <!-- optional - only needed if you are using JPA outside of a Java EE container --> 
    <dependency> 
     <groupId>org.eclipse.persistence</groupId> 
     <artifactId>javax.persistence</artifactId> 
     <version>2.0.0</version> 
    </dependency> 

    <dependency> 
     <groupId>mysql</groupId> 
     <artifactId>mysql-connector-java</artifactId> 
     <version>5.1.17</version> 
    </dependency> 

    <dependency> 
     <groupId>org.json</groupId> 
     <artifactId>json</artifactId> 
     <version>20090211</version> 
    </dependency> 

</dependencies> 
<build> 
    <finalName>tridenthyundai</finalName> 
    <plugins> 
     <plugin> 
      <groupId>org.apache.maven.plugins</groupId> 
      <artifactId>maven-compiler-plugin</artifactId> 
      <version>3.0</version> 
      <configuration> 
       <source>${jdk.version}</source> 
       <target>${jdk.version}</target> 
      </configuration> 
     </plugin> 

     <plugin> 
      <groupId>org.mortbay.jetty</groupId> 
      <artifactId>jetty-maven-plugin</artifactId> 
      <version>${jetty.version}</version> 
     </plugin> 

     <!-- LOCAL Maven Tomcat Plugin --> 
     <!-- <plugin> <groupId>org.apache.tomcat.maven</groupId> <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.1</version> <configuration> <url>http://localhost:8080/manager/text</url> 
      <path>/tridenthyundai</path> <username>admin</username> <password>admin</password> 
      </configuration> </plugin> --> 

     <!-- PRODUCTION Maven Tomcat Plugin --> 
     <plugin> 
      <groupId>org.apache.tomcat.maven</groupId> 
      <artifactId>tomcat7-maven-plugin</artifactId> 
      <version>2.1</version> 
      <configuration> 
       <url>http://mobile.saptalabs.com/manager/text</url> 
       <path>/tridenthyundai</path> 
       <username>user</username> 
       <password>passcode</password> 
      </configuration> 
     </plugin> 

    </plugins> 
</build> 

0
<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/maven-v4_0_0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 
    <groupId>com.sapta.hr</groupId> 
    <artifactId>hrweb</artifactId> 
    <packaging>war</packaging> 
    <version>1.0-SNAPSHOT</version> 
    <name>Saptalabs HR Maven Webapp</name> 
    <url>http://maven.apache.org</url> 

    <repositories> 
     <repository> 
      <id>eclipselink</id> 
      <url>http://download.eclipse.org/rt/eclipselink/maven.repo/</url> 
     </repository> 

     <repository> 
      <id>releases</id> 
      <name>Releases</name> 
      <url>https://oss.sonatype.org/content/repositories/releases</url> 
     </repository> 
    </repositories> 

    <properties> 
     <spring.version>3.0.5.RELEASE</spring.version> 
     <junit.version>4.11</junit.version> 
     <jdk.version>1.7</jdk.version> 
     <jetty.version>8.1.8.v20121106</jetty.version> 
    </properties> 

    <dependencies> 

     <!-- Spring 3 dependencies --> 

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

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

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

     <dependency> 
      <groupId>com.itextpdf</groupId> 
      <artifactId>itextpdf</artifactId> 
      <version>5.0.6</version> 
     </dependency> 

     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi</artifactId> 
      <version>3.9</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.poi</groupId> 
      <artifactId>poi-ooxml</artifactId> 
      <version>3.7</version> 
     </dependency> 

     <!-- Apache Commons file upload --> 
     <dependency> 
      <groupId>commons-fileupload</groupId> 
      <artifactId>commons-fileupload</artifactId> 
      <version>1.2.2</version> 
     </dependency> 

     <!-- Apache Commons IO --> 
     <dependency> 
      <groupId>org.apache.commons</groupId> 
      <artifactId>commons-io</artifactId> 
      <version>1.3.2</version> 
     </dependency> 

     <dependency> 
      <groupId>junit</groupId> 
      <artifactId>junit</artifactId> 
      <version>${junit.version}</version> 
      <scope>test</scope> 
     </dependency> 

     <dependency> 
      <groupId>jstl</groupId> 
      <artifactId>jstl</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>commons-codec</groupId> 
      <artifactId>commons-codec</artifactId> 
      <version>1.2</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>javax.servlet-api</artifactId> 
      <version>3.0.1</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jsp-api</artifactId> 
      <version>2.0</version> 
      <scope>provided</scope> 
     </dependency> 

     <dependency> 
      <groupId>log4j</groupId> 
      <artifactId>log4j</artifactId> 
      <version>1.2.9</version> 
     </dependency> 

     <!-- See http://wiki.eclipse.org/EclipseLink/Maven --> 
     <dependency> 
      <groupId>org.eclipse.persistence</groupId> 
      <artifactId>eclipselink</artifactId> 
      <version>2.0.0</version> 
     </dependency> 

     <!-- optional - only needed if you are using JPA outside of a Java EE container --> 
     <dependency> 
      <groupId>org.eclipse.persistence</groupId> 
      <artifactId>javax.persistence</artifactId> 
      <version>2.0.0</version> 
     </dependency> 

     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.17</version> 
     </dependency> 

     <dependency> 
      <groupId>org.json</groupId> 
      <artifactId>json</artifactId> 
      <version>20090211</version> 
     </dependency> 

     <dependency> 
      <groupId>com.googlecode.json-simple</groupId> 
      <artifactId>json-simple</artifactId> 
      <version>1.1.1</version> 
     </dependency> 

     <dependency> 
      <groupId>javax.mail</groupId> 
      <artifactId>mail</artifactId> 
      <version>1.4.3</version> 
     </dependency> 

     <dependency> 
      <groupId>com.googlecode.mp4parser</groupId> 
      <artifactId>isoparser</artifactId> 
      <version>1.0-RC-27</version> 
     </dependency> 

     <dependency> 
      <groupId>com.sapta.hr</groupId> 
      <artifactId>hrcommon</artifactId> 
      <version>1.0-SNAPSHOT</version> 
     </dependency> 

    </dependencies> 
    <build> 
     <finalName>saptalabs</finalName> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.maven.plugins</groupId> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.0</version> 
       <configuration> 
        <source>${jdk.version}</source> 
        <target>${jdk.version}</target> 
       </configuration> 
      </plugin> 

      <plugin> 
       <groupId>org.mortbay.jetty</groupId> 
       <artifactId>jetty-maven-plugin</artifactId> 
       <version>${jetty.version}</version> 
      </plugin> 

      <plugin> 
       <groupId>org.apache.tomcat.maven</groupId> 
       <artifactId>tomcat7-maven-plugin</artifactId> 
       <version>2.1</version> 
       <configuration> 
        <url>http://localhost:8081/manager/text</url> 
        <path>/saptalabs</path> 
        <username>admin</username> 
        <password>admin</password> 
       </configuration> 
      </plugin> 

     </plugins> 
    </build> 
</project>