Как отключить сжатие jar в Maven

Есть ли в Maven (2.0.9) возможность отключить сжатие jar для всей операции? Я использую Maven как на сервере сборки, так и на своей рабочей станции, и я хотел бы отключить сжатие jar в сборках рабочей станции (только для разработки). Однако я не хочу трогать все помпы и создавать по две версии для каждой.

Есть ли возможность отключить сжатие jar с помощью переменной среды, файла или касания одного pom.xml?


person Ran Biron    schedule 23.06.2009    source источник


Ответы (4)


Ну, вы можете определить другой плагин jar по профилю. Было бы это приемлемо?

person mikek    schedule 23.06.2009
comment
@Ran Biron: я не совсем уверен, но, как вы, возможно, знаете, вы можете переопределять плагины для каждого профиля. Я мало работал над многоуровневыми проектами POM, чтобы проверить, передается ли выбор профиля дочерним помпонам, но я очень хорошо представляю, что это может быть так. Я бы сам протестировал, но пора выходить из офиса =) - person mikek; 23.06.2009
comment
подробности см. в моем собственном ответе. Спасибо. - person Ran Biron; 23.06.2009

По-видимому, это возможно, определив это:

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

в pom.xml верхнего уровня. В качестве примечания - это на самом деле не решило мою первоначальную проблему сборки, занимающей слишком много времени.

person Ran Biron    schedule 23.06.2009
comment
1. Я предоставил детали, первоначальный ответчик представил идею. 2. Я считаю, что лучше отдать принятое другому человеку за частичное представление, чем самому себе за полное представление. - person Ran Biron; 28.06.2009
comment
Я бы посоветовал подумать об изменении выбранного ответа (хотя здорово, что вы хотите поделиться кредитом!). Для людей, пытающихся найти работающее решение, действительно приятно получить лучший ответ как принятый. Теперь принятый ответ на самом деле не отвечает на проблему. - person akauppi; 15.07.2015
comment
Кажется, это ничего не делает при использовании maven-shade-plugin. Кто-нибудь знает, как отключить там сжатие? - person rococo; 17.09.2019

Добавьте следующее в раздел build.plugins в файле pom.xml вашего проекта.

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

Это отключает сжатие файла jar для вашего проекта maven.

person walter    schedule 20.11.2009
comment
А как отключить только для одного артефакта? Скажем, ключевой файл или что-то, что, если хранить его в сжатом виде, не будет работать... - person ggb667; 19.06.2014

наконец-то я нашел ответ на эту тему (отключить сжатие jar), настроив прямо в pom, а также нашел еще две интересные детали: поставив < em>другое имя jar-файла и включают определение "манифест". Вот мой фрагмент помпы.

<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>
person Lisandro López Villatoro    schedule 26.06.2015