【问题标题】:How to turn off jar compression in Maven如何在 Maven 中关闭 jar 压缩
【发布时间】:2010-11-05 04:25:01
【问题描述】:

Maven (2.0.9) 中是否有一个选项可以关闭整个操作的 jar 压缩?我在构建服务器和工作站中都使用 Maven,我想在工作站构建中禁用 jar 压缩(仅限开发)。但是,我不想触及所有的 pom 并为每个 pom 创建两个版本。

是否可以通过环境变量、文件或触摸单个 pom.xml 来关闭 jar 压缩?

【问题讨论】:

    标签: maven-2 build jar


    【解决方案1】:

    嗯,你可以通过配置文件定义不同的 jar 插件。这可以接受吗?

    【讨论】:

    • @Ran Biron:我不完全确定,但您可能知道您可以在每个配置文件的基础上重新定义插件。我在多级 POM 项目上工作很少,以测试配置文件选择是否传递给子 pom,但我可以很好地想象它可能是这样的。我会自己测试一下,但是该离开办公室了=)
    • 查看我自己的答案了解详情。谢谢。
    【解决方案2】:

    显然可以通过定义这个来实现:

     <profile><id>...</id>
       <build>
         <pluginManagement>
             <plugins>
                 <plugin>
                     <configuration>
                         <archive>
                             <compress>false</compress>
                        </archive>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
      </build>
    </profile>
    

    在顶级 pom.xml 中。 作为旁注 - 这并没有真正解决我最初的构建问题,即构建花费了太多时间。

    【讨论】:

    • 1.我提供了详细信息,原始回答者提供了想法。 2. 我认为给别人“接受”是为了部分想法,而不是给自己一个完整的想法。
    • 我建议考虑更改所选答案(尽管您希望分享功劳真是太好了!)。对于试图找到一个可行的解决方案的人来说,将最佳答案作为“接受”的答案真的很巧妙。现在,接受的答案实际上并没有回答问题。
    • 这在使用maven-shade-plugin 时似乎没有任何作用。有人知道如何在那里禁用压缩吗?
    【解决方案3】:

    将以下内容添加到项目的 pom.xml 文件中的 build.plugins 部分。

    <plugin>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.2</version>
        <configuration>
            <archive>
                <compress>false</compress>
            </archive>
        </configuration>
    </plugin>
    

    这会关闭您的 maven 项目的 jar 文件压缩。

    【讨论】:

    • 你如何只为一个工件关闭它?说一个密钥文件或一些如果存储压缩将无法工作的东西......
    【解决方案4】:

    终于找到了这个题目的答案(关闭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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-04
      • 2014-01-07
      • 2012-09-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多