【发布时间】:2010-11-05 04:25:01
【问题描述】:
Maven (2.0.9) 中是否有一个选项可以关闭整个操作的 jar 压缩?我在构建服务器和工作站中都使用 Maven,我想在工作站构建中禁用 jar 压缩(仅限开发)。但是,我不想触及所有的 pom 并为每个 pom 创建两个版本。
是否可以通过环境变量、文件或触摸单个 pom.xml 来关闭 jar 压缩?
【问题讨论】:
Maven (2.0.9) 中是否有一个选项可以关闭整个操作的 jar 压缩?我在构建服务器和工作站中都使用 Maven,我想在工作站构建中禁用 jar 压缩(仅限开发)。但是,我不想触及所有的 pom 并为每个 pom 创建两个版本。
是否可以通过环境变量、文件或触摸单个 pom.xml 来关闭 jar 压缩?
【问题讨论】:
嗯,你可以通过配置文件定义不同的 jar 插件。这可以接受吗?
【讨论】:
显然可以通过定义这个来实现:
<profile><id>...</id>
<build>
<pluginManagement>
<plugins>
<plugin>
<configuration>
<archive>
<compress>false</compress>
</archive>
</configuration>
</plugin>
</plugins>
</pluginManagement>
</build>
</profile>
在顶级 pom.xml 中。 作为旁注 - 这并没有真正解决我最初的构建问题,即构建花费了太多时间。
【讨论】:
maven-shade-plugin 时似乎没有任何作用。有人知道如何在那里禁用压缩吗?
将以下内容添加到项目的 pom.xml 文件中的 build.plugins 部分。
<plugin>
<artifactId>maven-jar-plugin</artifactId>
<version>2.2</version>
<configuration>
<archive>
<compress>false</compress>
</archive>
</configuration>
</plugin>
这会关闭您的 maven 项目的 jar 文件压缩。
【讨论】:
终于找到了这个题目的答案(关闭jar压缩),直接配置到pom中,还发现了另外两个有趣的细节:放一个不同的 jar 名称 和 包括“清单” 定义。这是我的 pom 片段。
<build>
<finalName>***FileName***</finalName>
<plugins>
<!-- Set a JDK compiler level -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>${jdk.version}</source>
<target>${jdk.version}</target>
</configuration>
</plugin>
<!-- Make this jar executable -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<configuration>
<archive>
<manifest>
<!-- Jar file entry point -->
<mainClass>***package.test.ClassTest***</mainClass>
</manifest>
<compress>***false***</compress>
</archive>
</configuration>
</plugin>
</plugins>
</build>
【讨论】: