Maven / FatJarのビルドについて
javaで、windowsアプロケーションを作成するにあたり、まずは実行可能なjarを生成しようと思いました。
普段WEBアプリケーション開発でSpring/Mavenあたりを使用しているので、使いなれたものを使おうと思い、
同じくSpring / MavenでHello worldを作りました。
TestMain.java
package aaa.bbb.ccc; @Component public class TestMain { public static void main(String[] args) { try { ApplicationContext ctx = new AnnotationConfigApplicationContext(TestConfig.class); TestMain main = ctx.getBean(TestMain.class); main.exec(); } catch (Exception e) { e.printStackTrace(); } } public void exec() { System.out.println("Hello world"); } }
TestConfig.java
@Configuration
@ComponentScan(basePackages = {"aaa.bbb.ccc"})
public class TestConfig {
}
POMにはmaven-assembly-pluginを追加しました。
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<version>2.2</version>
<configuration
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
<archive>
<manifest>
<mainClass>aaa.bbb.ccc.TestMain</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
これでローカルのリポジトリで
mvn clean install
を行い、生成されたjarのところで
java -jar sample.jar
java -classpath "*" aaa.bbb.ccc.TestMain
等やってみましたが、
ApplicationContextが見つかりませんと出ます。
FatJarの定義を書いてあるので、Springまでラッピングしてくれるものかと思っていたのですが違うのでしょうか?
実行時にSpring本体等もクラスパスに追加しないとできないのでしょうか?
よろしくお願いします。