java - Maven程序集插件使用classpath构建jar

时间:2017-05-04 09:51:57

标签: java spring maven

我有一个hadoop任务作为spring-boot应用程序的一个组件,我使用maven-assembly-plugin分别编译每个文件。

        <plugin>
            <artifactId>maven-assembly-plugin</artifactId>
            <configuration>
                <descriptorRefs>
                    <descriptorRef>jar-with-dependencies</descriptorRef>
                </descriptorRefs>
            </configuration>
            <executions>
                <execution>
                    <id>make-assembly</id>
                    <phase>package</phase>
                    <goals>
                        <goal>single</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>

如果我使用以下命令启动服务器,则在目标目录中

java -cp target/xx-server-0.0.1-SNAPSHOT-jar-with-dependencies.jar com.example.MyApplication

发生错误:

org.springframework.context.ApplicationContextException: Unable to start embedded container; nested exception is org.springframework.context.ApplicationContextException: Unable to start EmbeddedWebApplicationContext due to missing EmbeddedServletContainerFactory bean.

,这是由缺少类路径引起的。如何设置jar的类路径?或者我是否需要编写脚本来启动我的服务器?在IDE中,可以使用类路径标志启动服务器:

/usr/lib/jvm/jdk1.8.0_121/bin/java -XX:TieredStopAtLevel=1 
-noverify -Dspring.output.ansi.enabled=always 
-javaagent:/home/knh190/idea/idea-IU 171.3780.95/lib/idea_rt.jar=39181:/home/knh190/idea/idea-IU-171.3780.95/bin 
-Dfile.encoding=UTF-8
-classpath # list of dependencies

1 个答案:

答案 0 :(得分:0)

您可以尝试以下内容:

<configuration>
    <descriptorRefs>
        <descriptorRef>jar-with-dependencies</descriptorRef>
    </descriptorRefs>
    <archive>
        <manifest>
            <mainClass>com.my.App</mainClass>
        </manifest>
        <manifestEntries>
            <Class-Path>your-classpath-here</Class-Path>
        </manifestEntries>
    </archive>
</configuration>