使用批处理文件运行maven java项目

时间:2014-12-16 17:40:23

标签: java spring maven spring-batch

我是一个java应用程序,我在其中使用maven来加载依赖项。我的主要方法是在App.java中,还有其他各种类。这是一个基于弹簧的应用程序。 我使用批处理文件运行此应用程序。

这是我迄今为止所尝试过的:

  1. 制作了一个清单文件,以提供主类名称
  2. 生成了一个应用程序
  3. 在lib文件夹中放置了我的应用程序使用的所有jar
  4. 清单中的
  5. 给了所有的罐子路径
  6. 但我想知道是否还有其他办法可以达到同样的目的。在清单中我将给出所有罐子名称

    同样在应用程序jar中,会自动创建清单文件。所以我手动编辑它以提供主类名和所有相关的jar。

    任何帮助表示感谢。

    感谢。

1 个答案:

答案 0 :(得分:5)

使用Maven Jar Plugin做你想做的事。您可以将其配置为放置所有清单条目以满足您的需求。

<plugin>
    <!-- jar plugin -->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-jar-plugin</artifactId>
    <version>2.4</version>
    <configuration>
        <archive>
            <manifestEntries>
                <Main-Class>package.path.for.App</Main-Class>
                <implementation-version>1.0</implementation-version>            
            </manifestEntries>
            <manifest>
                <addClasspath>true</addClasspath>
                <classpathPrefix>lib/</classpathPrefix>  <!-- use this to specify a classpath prefix, in your case, lib -->
                <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
                <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
        </archive>
    </configuration>
</plugin>

为便于将所有依赖项复制到特定文件夹,请使用Maven Dependency Plugin

<plugin>
    <!-- copy all dependencies of your app to target folder-->
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-dependency-plugin</artifactId>
    <version>2.3</version>
    <executions>
        <execution>
            <id>copy-dependencies</id>
            <phase>package</phase>
            <configuration>
                <outputDirectory>${project.build.directory}/lib</outputDirectory> <!-- use this field to specify where all your dependencies go -->
                <overWriteReleases>false</overWriteReleases>
                <overWriteSnapshots>false</overWriteSnapshots>
                <overWriteIfNewer>true</overWriteIfNewer>
            </configuration>
            <goals>
                <goal>copy-dependencies</goal>
            </goals>
        </execution>
    </executions>
</plugin>