Maven 2 如何在Maven中关闭jar压缩

Maven 2 如何在Maven中关闭jar压缩,maven-2,build,jar,Maven 2,Build,Jar,Maven(2.0.9)中是否有关闭整个操作的jar压缩的选项?我在构建服务器和工作站中都使用Maven,我想在工作站构建中禁用jar压缩(仅限于开发)。但是,我不想接触所有的POM,并为每个POM创建两个版本 是否有一个选项可以通过环境变量、文件或触摸单个pom.xml关闭jar压缩?好的,您可以通过配置文件定义不同的jar插件。这是可以接受的吗?显然,通过定义这一点: <profile><id>...</id> <build>

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中。
顺便说一句——这并没有真正解决我最初的构建耗时太多的问题。

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

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

maven jar插件
2.2
假的

这将关闭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>

***文件名***
org.apache.maven.plugins
maven编译器插件
2.3.2
${jdk.version}
${jdk.version}
org.apache.maven.plugins
maven jar插件
***package.test.ClassTest***
***假的***

@Ran Biron:我不完全确定,但您可能知道,您可以根据每个配置文件重新定义插件。我在多层次POM项目上做了很多工作,以测试配置文件选择是否传递给子POM,但我可以很好地想象可能是这样的。我想自己测试一下,但现在是离开办公室的时候了(详情请看我自己的答案)。谢谢。我提供了细节,最初的回答者提供了想法。2.我认为最好将“已接受”的部分想法交给另一个人,而不是交给我一个完整的想法。我建议你考虑改变选择的答案(尽管你希望分享荣誉的方式很好!)。对于试图找到一个有效解决方案的人来说,得到“被接受”的最佳答案真的很好。现在,被接受的答案实际上并没有回答这个问题。这在使用
maven shade plugin
时似乎没有任何作用。有人知道如何在那里禁用压缩吗?但是如何只为一个工件关闭压缩?比如说一个密钥文件或者一些如果被压缩就无法使用的东西。。。