我使用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
构建规则来完成?
答案 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>