maven jar依赖的问题

清风傲剑 发布于 2015/12/12 16:27
阅读 540
收藏 0
背景:一个项目依赖另一个jar包,这个jar又依赖其他的jar(比如一些工具包 如:netty),在本地eclipse构建时netty包都可以自动下载到Maven Dependenices中,而使用hudson向服务器上发布,lib下并没有netty包,导致应用启动不了,急求原因与解决办法?
加载中
0
清风傲剑
清风傲剑

<dependencies>

   <dependency>

<groupId>com.lyx.coolBreeze</groupId>

<artifactId>coolBreeze-common</artifactId>

<version>${project.parent.version}</version>

<!-- 排除以下jar不被其他项目依赖 -->

<exclusions>

<exclusion>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-api</artifactId>

</exclusion>

<exclusion>

<groupId>log.logback</groupId>

<artifactId>core</artifactId>

</exclusion>

<exclusion>

<groupId>log.logback</groupId>

<artifactId>classic</artifactId>

</exclusion>

<exclusion>

<groupId>com.alibaba</groupId>

<artifactId>fastjson</artifactId>

</exclusion>

<exclusion>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

</exclusion>

<exclusion>

<groupId>log.slf4j</groupId>

<artifactId>log4j-over-slf4j</artifactId>

</exclusion>

</exclusions>

</dependency>

<dependency>

<groupId>com.lyx.coolBreeze</groupId>

<artifactId>coolBreeze-container</artifactId>

<version>${project.parent.version}</version>

</dependency>

  <dependency>

<groupId>com.lyx.coolBreeze</groupId>

<artifactId>coolBreeze-server</artifactId>

<version>${project.parent.version}</version>

</dependency>

  </dependencies>  

  

  <build>

<plugins>

<plugin>

<groupId>org.apache.maven.plugins</groupId>

<artifactId>maven-shade-plugin</artifactId>

<version>2.2</version>

<executions>

<execution>

<phase>package</phase>

<goals>

<goal>shade</goal>

</goals>

<configuration>

<filters>  

                                <filter>  

                                    <artifact>*:*</artifact>  

                                    <excludes>  

                                        <exclude>META-INF/*.SF</exclude>  

                                        <exclude>META-INF/*.DSA</exclude>  

                                        <exclude>META-INF/*.RSA</exclude>  

                                    </excludes>  

                                </filter>  

                            </filters> 

<artifactSet>

<includes>

<include>com.lyx.coolBreeze:coolBreeze-common</include>

<include>com.lyx.coolBreeze:coolBreeze-container</include>

<include>com.lyx.coolBreeze:coolBreeze-server</include>

</includes>

</artifactSet>

</configuration>

</execution>

</executions>

            </plugin> 

</plugins>

</build>

0
编走编想
编走编想
你用 Maven 打什么包?Jar 包是不会包含依赖的,如果想构建自启动的 Jar 包,请用 assembly 或 shard 插件
清风傲剑
清风傲剑
下面是我的maven配置 烦请帮忙看下 谢谢
0
开源中国首席帅爆天
开源中国首席帅爆天
把你maven pom.xml配置贴上来才能找原因
开源中国首席帅爆天
开源中国首席帅爆天
回复 @清风傲剑 : 你可以看看Dependencies tree从那里你可以发现问题。
清风傲剑
清风傲剑
下面是我maven配置 烦请帮忙看看
0
编走编想
编走编想
你的项目没有显示依赖 Netty,如果是其它项目依赖 Netty,那就要看 <type> 是不是 provided 了。BTW,代码放到代码框里,好不好,这么让人看着多累。
编走编想
编走编想
@清风傲剑 查看 Maven repo 中的 pom 文件,而不是看源码中的,如果 Maven repo 中的没问题那就奇怪了
清风傲剑
清风傲剑
回复 @编走编想 : 关联的话就是在server这个子pom中正常dependence, 可是就是依赖不上
编走编想
编走编想
回复 @清风傲剑 : com.lyx.coolBreeze 这个项目是你自己写的,你只能自己看 maven repo 里这些项目的 pom.xml 是怎么关联 netty 的了
编走编想
编走编想
回复 @清风傲剑 : 我刚看了,依赖的依赖也会被shade打包,也是的确应该这样。
编走编想
编走编想
回复 @清风傲剑 : 之前说错了,compile、provided 指的是 scope,更正一下。compile 是默认的,会被打包进 artifact。provided 指的是运行时或服务器会提供,不用打包进去。所以 compile 应该是没问题。我能想到的是可能 shade 插件只打包你直接引用的 dep,我试一下看
下一页
0
开源中国首席帅爆天
清风傲剑
清风傲剑
可以解释下啥意思嘛
返回顶部
顶部