从glassfish中排除slf4j

时间:2016-02-02 06:26:46

标签: java maven glassfish

我提到了很多链接。我终于得到this而我不喜欢this way

我想从this jar中排除slf4j。这是所有的玻璃鱼。

为什么我要排除?

这是一个不同的故事。如果我包含这个slf4j,那么由于多个slf4j,AKKA事件记录无法正常工作。如果我排除嵌入式jar完全记录工作。但是我需要嵌入式jar而不是glassfish slf4j。

任何解决方案?

Glassfish'Pom。似乎slf4j是一个传递依赖

1 个答案:

答案 0 :(得分:0)

您尝试过类似的事情吗?

<dependency>
    <groupId>org.glassfish.main.extras</groupId>
    <artifactId>glassfish-embedded-all</artifactId>
    <version>4.0-b72</version>
    <exclusions>
        <exclusion>
             <groupId>org.slf4j</groupId>
             <artifactId>*</artifactId>
        </exclusion>
    </exclusions>
</dependency>

更新

嵌入了slf4j类。如果您仍想使用超级jar,可以选择遮蔽 glassfish-embedded-all ,即创建maven项目或模块:

<dependencies>
    <dependency>
        <groupId>org.glassfish.main.extras</groupId>
        <artifactId>glassfish-embedded-all</artifactId>
        <version>4.0-b72</version>
    </dependency>
</dependencies>

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-shade-plugin</artifactId>
            <version>2.4.3</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <filters>
                            <filter>
                                <artifact>*:*</artifact>
                                <excludes>
                                    <exclude>**/org/slf4j/**/*</exclude>
                                </excludes>
                            </filter>
                        </filters>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
</build>

然后使用生成的jar代替 glassfish-embedded-all