Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Maven shade插件,包括所有依赖项jar_Java_Maven_Maven Shade Plugin - Fatal编程技术网

Java Maven shade插件,包括所有依赖项jar

Java Maven shade插件,包括所有依赖项jar,java,maven,maven-shade-plugin,Java,Maven,Maven Shade Plugin,在eclipse中使用maven打包jar时,我面临一个问题。我相信它只需要编译时所需的依赖类。。有些类在运行时是必需的,但它不包括这些类。是否有一种方法可以强制Maven在构建最终jar时包含所有依赖项jar/类 <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <a

在eclipse中使用maven打包jar时,我面临一个问题。我相信它只需要编译时所需的依赖类。。有些类在运行时是必需的,但它不包括这些类。是否有一种方法可以强制Maven在构建最终jar时包含所有依赖项jar/类

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>1.4</version>
            <configuration>
                <createDependencyReducedPom>true</createDependencyReducedPom>
                <filters>
                    <filter>
                        <artifact>*:*</artifact>
                        <excludes>
                           <exclude>META-INF/*.SF</exclude>
                  <!--      <exclude>META-INF/*.DSA</exclude> 
                            <exclude>META-INF/*.RSA</exclude> -->
                        </excludes>
                    </filter>
                </filters>
            </configuration>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>

                        <transformers>
                            <transformer
                                   implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer"/>
                            <transformer
                                 implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass></mainClass>
                            </transformer>
                        </transformers>


                    </configuration>
                </execution>
            </executions>
        </plugin>   
    </plugins>
</build>

org.apache.maven.plugins
maven阴影插件
1.4
真的
*:*
META-INF/*.SF
包裹
阴凉处

这个对我很有用。我正在使用ApacheMaven shade插件

<plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.6</source>
                <target>1.6</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <transformers>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.handlers</resource>
                            </transformer>
                            <transformer
                                implementation="org.springframework.boot.maven.PropertiesMergingResourceTransformer">
                                <resource>META-INF/spring.factories</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.AppendingTransformer">
                                <resource>META-INF/spring.schemas</resource>
                            </transformer>
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" />
                            <transformer
                                implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
                                <mainClass>com.myname.sample_client.Application</mainClass>
                            </transformer>
                        </transformers>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>

org.apache.maven.plugins
maven编译器插件
1.6
1.6
org.apache.maven.plugins
maven阴影插件
包裹
阴凉处
META-INF/spring.handlers
META-INF/spring.com
META-INF/spring.schemas
com.myname.sample\u client.Application
  • 注意我的是一个spring boot应用程序,所以我有变压器

似乎表明它包含范围为
编译
运行时
的所有依赖项。你有没有试着去确认一个最小的示例项目是否不是这样?我刚刚发现所有的依赖项都打包好了。问题是我有一个SpringBeanXML配置文件,即使路径存在也找不到。然后我发现有一种方法可以在执行mvn包的过程中结合java+spring。我必须将以下内容添加到pom.xml中才能使其正常工作。META-INF/spring.handlers