关于java:Maven Shade插件删除“原始”original

Documentation hint on not to deploy *-shaded.jar and original-*.jar · Issue #86 · microsoft/azure-maven-plugins (github.com)

java - Maven shade plugin remove "original" - Stack Overflow

<plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <version>3.1.0</version>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <outputDirectory>${project.build.directory}/original</outputDirectory>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <mainClass>my.package.MyFunctions</mainClass>
            </transformer>
          </transformers>
          <filters>
            <filter>
              <artifact>*:*</artifact>
              <excludes>
                <exclude>META-INF/*.SF</exclude>
                <exclude>META-INF/*.DSA</exclude>
                <exclude>META-INF/*.RSA</exclude>
              </excludes>
            </filter>
          </filters>
        </configuration>
      </plugin>

<outputDirectory>${project.build.directory}/original</outputDirectory>

 

Maven shade plugin remove “original”

每次我运行maven软件包来生成更新的jar时,它都会创建一个"原始" jar文件以及更新的jar文件。

由于我会自动运行已编译的jar,并且它们都试图启动,因此这对我来说尤其是个问题。

我要创建的只是生成的$ {project.artifactId}-$ {project.version} -shaded.jar文件,而不是"原始"文件。 有没有一种方法可以不进行备份就将其覆盖(我假设这就是它的作用)?

我该如何解决?

这是我的pom:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
<groupId>com.spiromarshes</groupId>
LiveDebugTest</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>

<name>LiveDebugTest</name>

<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties>

<build>
    <defaultGoal>clean package</defaultGoal>
    <plugins>
        <plugin>
            <version>3.6.1</version>
            <groupId>org.apache.maven.plugins</groupId>
            maven-compiler-plugin</artifactId>
            <configuration>
                <source>1.8</source>
                <target>1.8</target>
            </configuration>
        </plugin>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            maven-shade-plugin</artifactId>
            <version>3.0.0</version>
            <executions>
                <execution>
                    <phase>package</phase>
                    <goals>
                        <goal>shade</goal>
                    </goals>
                    <configuration>
                        <minimizeJar>true</minimizeJar>
                        <outputDirectory>${dir}</outputDirectory>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <resources>
        <resource>
            <directory>src/main/resources</directory>
            <filtering>true</filtering>
        </resource>
    </resources>
</build>

<repositories>
    <repository>
        <id>spigotmc-repo</id>
        <url>https://hub.spigotmc.org/nexus/content/groups/public/</url>
    </repository>
    <repository>
        <id>sonatype</id>
        <url>https://oss.sonatype.org/content/groups/public/</url>
    </repository>
</repositories>

<dependencies>
    <dependency>
        <groupId>org.spigotmc</groupId>
        spigot-api</artifactId>
        <version>1.12.2-R0.1-SNAPSHOT</version>
        <scope>provided</scope>
    </dependency>
</dependencies>

springboot项目用maven打包生成的.jar.original是什么?

【问题】

springboot项目用maven打包,为什么在生成jar包的同时还生产.original文件?

#【答案】

官方文档:
https://docs.spring.io/spring-boot/docs/current/reference/html/getting-started.html#getting-started-first-application
在这里插入图片描述
翻译:您还应该在target目录中看到一个更小的文件xxx-0.0.1-SNAPSHOT.jar.original。这是Maven在Spring Boot重新打包之前创建的原始jar文件。(只包含少量用户的类,不包含依赖
在这里插入图片描述
.jar.original 是普通jar包,不包含依赖
.jar 是可执行jar包,包含了pom中的所有依赖,可以直接用java -jar 命令执行
如果是部署,就用.jar
如果是给别的项目用,就要给.jar.original这个包

posted @ 2022-11-30 15:57  CharyGao  阅读(1264)  评论(0)    收藏  举报