我想创建一个没有 SNAPSHOT 的 jar 文件,因为当我使用这个命令时
mvn -f pom.XML package
创建了两个文件“文件名_SNAPSHOT.jar 和文件名_SNAPSHOT_WITH_dependencies.jar” 我要文件名.jar 我知道我应该在 pom.XML 中进行编辑,所以我尝试添加这个
<plugin>
<groupId>org.Apache.maven.plugins</groupId>
<artifactId>maven-source-plugin</artifactId>
<executions>
<execution>
<id>attach-sources</id>
<goals>
<goal>jar</goal>
</goals>
</execution>
</executions>
</plugin>
但它创建了文件名_SNAPSHOT_source.jar 我该如何解决它?!
我的 pom.XML 就是这样
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" Xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<model Version>4.0.0</model Version>
<group Id>MyProject</group Id>
<artifact Id>MyProject</artifact Id>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
最佳答案
正确的方法是更改project.version
。但不推荐这样做,因为开发jar应该有后缀为-SNAPSHOT
的版本。
Maven goes a long way to help you with version management and you will often see the SNAPSHOT designator in a version, which indicates that a project is in a state of development.
更多信息:
不更改 project.version
的其他解决方案是使用属性 finalName
。此解决方案从 Artifact 中删除整个 version
。
<build>
<finalName>${project.artifactId}</finalName>
</build>
应用您的 pom.xml
后应该如下所示:
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.example.something</groupId>
<artifactId>myproject</artifactId>
<version>0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>My Project<name>
<build>
<finalName>${project.artifactId}</finalName>
</build>
...
</project>
属性 finalName
也适用于 Maven Assembly Plugin
另请阅读:
关于java - 从 maven 创建 jar 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21108328/