Maven:从JAR

时间:2017-10-26 17:03:18

标签: java maven jar

我使用Maven来构建JAR。当我检查JAR时,我在maven文件夹中看到了META-INF文件夹。我希望它从构建中排除。我在pom.xml中的当前构建代码如下所示:

<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <addClasspath>true</addClasspath>
                        <classpathPrefix>Libraries</classpathPrefix>
                        <mainClass>com.company.Main</mainClass>
                    </manifest>
                    <manifestEntries>
                        <Built-By>Me</Built-By>
                    </manifestEntries>
                </archive>
                <!-- <excludes>
                    <exclude>META-INF/maven/**</exclude>
                </excludes> -->
            </configuration>
        </plugin>
        <!-- ...more plugins... -->
    </plugins>
</build>

我读到使用exclude标签可以排除某些内容,但不起作用。也许这只是指本地文件/文件夹? maven文件夹不属于来源,只是Maven添加。

This回答有些作品,但使用了不同的工件,因此当我将其粘贴到JAR时会生成第二个pom.xml。我想使用我当前的构建代码并排除上面描述的maven文件夹。如何使用maven构建规则来完成?

2 个答案:

答案 0 :(得分:7)

maven-archiver使用addMavenDescriptor来处理打包。它提供配置true,默认为false。将其设置为META-INF/maven应删除... <archive> <addMavenDescriptor>false</addMavenDescriptor> .... </archive> 目录。

select CAST(Price as numeric(17,2)) Price from PriceTable

您可以找到参考here

答案 1 :(得分:0)

您可以使用pom.xml文件中的以下配置,使用maven shade插件创建jar并排除maven文件夹:

<profile>
   <id>shade</id>
        <build>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-shade-plugin</artifactId>
                    <version>2.4.3</version>
                    <executions>
                      <phase>package</phase>
                            <goals>
                                <goal>shade</goal>
                            </goals>
                            <configuration>
                                <filters>
                                    <filter>
                                      <excludes>
                                            <exclude>META-INF/**</exclude>
                                      <excludes>
                                    </filter>
                                </filters>
                             </configuration>
                    <executions>
                    ...
</profile>