私はそれを理解しながら質問に答えようとします:
私が使用する必要があるようなスプリング構成を含むjarをパッケージ化する方法はjava -jar myjar.jar
?
質問にあるコードスニペットは単純に機能します。をパラメータ化する必要はありませんcontext.xml
。コードとその依存関係(スプリングなど)を単一のjarにバンドルし、jarファイルのメインクラスの適切なマニフェストエントリを含める必要があります。
私は個人的にmaven2を使用していますが、これは私が使用するpom.xmlです。
<project>
<modelVersion>4.0.0</modelVersion>
<groupId>com.stackoverflow</groupId>
<artifactId>stackoverflow-autostart-spring-app</artifactId>
<version>0.1</version>
<dependencies>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring</artifactId>
<version>2.5.2</version>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>com.stackoverflow.spring.autostart.Autostart</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
これは、Javaコードのパッケージ名を想定しており、ソースコードはsrc/main/java
ディレクトリにあり、ファイルcontext.xml
はディレクトリにありますsrc/main/resources
。
したがって、これpom.xml
にはいくつかの重要なポイントがあります。
- 春の依存関係(私はそれ自体を語っています)
- マニフェストエントリとしてメインクラスを追加するmavenjarプラグインの構成
- Mavenシェードプラグイン。これは、すべての依存関係/クラスを収集し、それらを1つのjarにパッケージ化するためのプラグインです。
実行可能jarは、の実行target\stackoverflow-autostart-spring-app-0.1.jar
時に使用可能になりますmvn package
。
このコードはすべて自分のボックスで機能していますが、ここにzipファイルを添付できないことに気づきました。私がそうしてここにリンクできる場所を知っている人はいますか?
チェックアウトしたい場合は、この質問に関連するコードを使用してgithubにgitリポジトリを作成しました。
お役に立てれば。