关于java:Maven Shade插件删除“原始”original
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这个包
摘抄自网络,便于检索查找。