- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 Maven 项目中,我尝试使用 maven-shade-plugin 在运行 mvn package
时生成 uber jar。结果,我在目标目录中得到了三个 jar:
original-hello-world-0.1.0-SNAPSHOT.jar
hello-world-0.1.0-SNAPSHOT.jar
hello-world-0.1.0-SNAPSHOT-shaded.jar
我知道第一个jar是打包的输出,不包含依赖项。但是第二个和第三个 jar 都包含依赖项,并且似乎完全相同(它们都具有相同的文件大小)。
第二个和第三个 jar 之间应该有区别吗?如果是的话,那是什么?否则,为什么会生产两个相同的 jar ?
这是我的 pom 文件:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>mygroup</groupId>
<artifactId>myproject</artifactId>
<packaging>jar</packaging>
<version>0.1.0-SNAPSHOT</version>
<name>hello-world</name>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.7</java.version>
<main.class>org.example.HelloWorld</main.class>
<maven.compiler.target>${java.version}</maven.compiler.target>
<maven.compiler.source>${java.version}</maven.compiler.source>
</properties>
<dependencies>
<dependency>
<groupId>org.jgrapht</groupId>
<artifactId>jgrapht-core</artifactId>
<version>0.9.0</version>
</dependency>
</dependencies>
<build>
<plugins>
<!-- To build executable jar -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>2.3</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<transformers>
<transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
<manifestEntries>
<Main-Class>${main.class}</Main-Class>
</manifestEntries>
</transformer>
</transformers>
</configuration>
</execution>
</executions>
</plugin>
<!-- To use Maven to run main class -->
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<version>1.3.2</version>
<executions>
<execution>
<goals>
<goal>java</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>${main.class}</mainClass>
</configuration>
</plugin>
</plugins>
</build>
</project>
最佳答案
我将你的 pom 复制到我的项目中,当我运行 mvn package
时,只创建了两个 jar。
您确定“hello-world-0.1.0-SNAPSHOT-shaded.jar-shaded”jar 不是之前 Maven 运行的输出吗?请尝试使用mvn clean package
并检查目标文件夹中包含哪些内容。
如果您想要一个带有“-shaded”标签的额外 jar,您可以将以下内容添加到您的 pom 中的阴影插件配置中:
<shadedClassifiedName>shaded</shadedClassifiedName>
关于java - Maven的Shade插件生成的jar有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28131449/
我正在寻找一种方法来解析字符串以获取 int,然后偶然发现: NumberUtils.toInt("blah",99); 我将它输入到我的 IDE 中,它会自动为我导入它: import autova
我是一名 CS 学生,在我们的期末考试中,我们被告知要通过光线追踪在多个球体上构建反射。这几乎就是我们得到的指导,除了完成后的外观图片。所以我需要球体,它们是反射(使用光线追踪)映射到它们上的,并带有
我正在使用 maven 来配置由多个小型服务组成的应用程序。大多数用 java 开发的服务共享相同的 maven 配置,如在相同的构建生命周期中,一些共享资源(如 spring AMQP)。 所以我在
我正在尝试使用 HBaseTestingUtility 1.2 与 hbase-shaded-client & hbase-shaded-server .它向我抛出了以下异常。谁能告诉我如何避免这种情
当使用 m2eclipse 工具为为 Maven Shade Plugin 配置的项目在 eclipse 中运行 Maven 构建时,构建失败并显示以下错误消息: 无法执行目标 org.apache.
我直接从 apache maven 文档中复制了 maven shade 插件的配置 https://maven.apache.org/plugins/maven-shade-plugin/examp
我试图从 Spring Boot 运行 Hello World 示例。当我在模块上运行“mvn package”时,出现以下错误:- [ERROR] Failed to execute goal or
在尝试构建旧版本的 Apache CXF 2.2.2 时,我一直收到 maven-shade-plugin 使用的 XmlAppendingTransformer 产生的错误:无法连接以获取 ht
我正在尝试使用 maven-shade-plugin 来区分 Java 6 和 Java 7 Artifact 。我的理解来自this link就是原来的神器会被阴影的神器代替 [INFO] Repl
我正在尝试遮阳 aws-java-sdk为了按照提到的建议解决库冲突 here .但我看到 maven-shade-plugin ,资源文件(文本)中的条目没有得到更新。例如 request.hand
我正在寻找一个“神奇”的功能,它可以拍摄图像并返回副本,但将一组色调替换为另一组色调。 例如我有一张红色鱼的照片:它有各种灰度和黑色和白色,但本质上是各种深浅不一的红色。我想将它传递给这个“魔术”函数
开心一刻 有一天螃蟹出门,不小心撞倒了泥鳅泥鳅很生气地说:你是不是瞎啊!螃蟹说:不是啊,我是螃蟹 概述 maven-shade-plugin 官网已经介绍的很详细了,我给大家简单翻译一
开心一刻 有一天螃蟹出门,不小心撞倒了泥鳅泥鳅很生气地说:你是不是瞎啊!螃蟹说:不是啊,我是螃蟹 概述 maven-shade-plugin 官网已经介绍的很详细了,我给大家简单翻译一
我在我的项目中使用 commons-io 并想对其进行着色。我遇到了一个我似乎无法弄清楚的警告: [WARNING] commons-io-2.7.jar, murder-1.0-SNAPSHOT.j
我正在使用 shade 插件创建一个包含所有依赖项的 jar。在我的 pom.xml 中应用此配置相对简单: org.apache.maven.plugins maven-shade-plugin
上下文 我有一个包含多个模块的 IntelliJ 项目。我正在使用 maven-shade-plugin 来压缩依赖项,同时减少 jar 大小。项目结构如下; 顶级父级 (pom)(聚合 api 和
我有一个同时包含Java和Scala组件的maven项目,但是当我使用maven-shade-plugin时,它会同时为Java和Scala文件定位软件包名称,但是仅重命名Java文件中的软件包,Sc
到目前为止,我一直在使用 Maven 程序集插件为每个 Artifact 生成两个 JAR - 已编译的源代码和依赖项 - 原因很简单 - 通过网络仅部署已编译的源代码比部署一体化 JAR 快得多具有
我试图使用Maven Shade并包装ElasticSearch jar。 之所以这样做,是因为我的项目中Lucene版本之间存在冲突。 但是当我使用Shade时发现了问题。它不会更改META-INF
我正在使用 maven-shade-plugin 创建一个可执行 jar,其中包含项目的所有依赖项。有时,这些依赖项会带来自己的依赖项,这些依赖项会与其他库的依赖项发生冲突,并且 maven-shad
我是一名优秀的程序员,十分优秀!